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
![]() 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 ![]() 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/ |