Thread Verarbeitung der Daten aus einer XML-Datei
(4 answers)
Opened by maio at 2007-11-09 14:39
Du versuchst, aus dem String "hallo" ein Array @hallo zu bekommen. So etwas nennt man symbolische Referenz. Dazu am besten mal diesen Artikel lesen...
strict erlaubt solche symbolischen Referenzen nicht. Deswegen läuft das Programm unter strict nicht. Du hast zwei Möglichkeiten, wie Du es auch unter strict zum Laufen bringst: 1) Du überprüfst erst, ob Du überhaupt eine Arrayreferenz vorliegen hast: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #!/usr/bin/perl use strict; use warnings; use XML::Simple; my $xml = XML::Simple->new; my $hashref = $xml->XMLin('test.xml'); foreach my $key (keys %$hashref) { if ( ref($hashref->{$key}) eq 'ARRAY' and @{$hashref->{$key}} > 0) { my @tmp = @{$hashref->{$key}}; foreach my $value (@tmp) { print $key." => ".$value."\n"; } } else { print $key." => ".$hashref->{$key}."\n"; } } 2) Du zwingst XML::Simple dazu, *immer* eine Arrayreferenz zu verwenden: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #!/usr/bin/perl use strict; use warnings; use XML::Simple; my $xml = XML::Simple->new; my $hashref = $xml->XMLin('test.xml', force_array => 1); foreach my $key (keys %$hashref) { if ( @{$hashref->{$key}} > 0) { my @tmp = @{$hashref->{$key}}; foreach my $value (@tmp) { print $key." => ".$value."\n"; } } } OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/) -- Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html Perl-Entwicklung: http://perl-services.de/ |