burgergold 5$? va chez l'diable! | Voila j'ai le code suivant (c'est pas encore une version finale alors ya p-e 2-3 trucs pas très bo encore)
Code :
- sub ini {
- my $file = new Bromont::File(shift);
- if (! -e $file->name || ! -f $file->name) {
- return;
- }
- return ini::parse_ini($file);
- }
- sub ini::parse_ini {
- my $file = shift;
- my $base_object_type = shift;
- my @base_lines;
- my @lines;
- my @object;
- my $object_type;
- my $test = $base_object_type;
- print "test1 " . $base_object_type . " " . \$base_object_type . "\n";
- foreach ($file->lines) {
- print "test2 " . $base_object_type . " " . \$base_object_type . "\n";
- if (my $type = ini::is_new_object_line($_)) {
- if (ini::is_base_object($object_type, $type)) {
- if ($object_type) {
- push(@object, ini::parse_ini((new Bromont::VFile(\@lines)), $object_type));
- }
- }
- $object_type = $type;
- }
- else {
- if ($base_object_type eq $object_type) {
- push(@lines, $_);
- }
- else {
- push(@base_lines, $_);
- }
- }
- }
- return create_object($base_object_type, \@base_lines, \@object);
- }
|
mon problème, c'est que mes 2 print sont différents, alors qu'ils devraient être identique. La référence de $base_object_type semble changer aussitot que j'entre dans mon foreach...
test1 port SCALAR(0x2010ef24)
test2 SCALAR(0x2010e9b4)
|
je comprends vraiment pas
merci |