Thread Array wird immer kleiner: bei der Iteration
(3 answers)
Opened by Jaque at 2007-07-06 10:47
Du veränderst $_ in der Subroutine (in der while-Schleife). Dein Array wird nicht geleert, aber die Inhalte der Elemente werden "gelöscht".
Das hat damit zu tun, dass $_ bei while nicht lokalisiert wird. Ich empfehle Dir folgenden Code: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/local/bin/perl use strict; use warnings; my @bundle = ("Datei_1", "Datei2"); for my $datei (@bundle){ print "at begining: @bundle\n"; read_my_file($datei); } sub read_my_file{ my ($file) = @_; open(MODULES, '<', $file) or die "Can't open $file: $!\n"; print "in subroutine: @bundle","\n"x2; while(my $line = <MODULES>){print "In file: $line","My files: @bundle\n"; } close(MODULES); print "at end of sr: @bundle\n$#bundle\n"; } print "@bundle\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/ |