Thread Array wird immer kleiner: bei der Iteration (3 answers)
Opened by Jaque at 2007-07-06 10:47

renee
 2007-07-06 11:13
#78250 #78250
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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/

View full thread Array wird immer kleiner: bei der Iteration