Article View: be.comp.programming
Article #4231Re: variabele filehandles in perl
From: Gunter Schelfhout
Date: Sun, 07 Sep 2003 03:15
Date: Sun, 07 Sep 2003 03:15
49 lines
2378 bytes
2378 bytes
Robby De Smedt wrote:
> Voor een perlscript moet ik 10 bestanden aanpassen die vogende
> uitdrukkinkg hebben:
> naam_1
> naam_2
> ...
> naam_9
>
> Wegens de simpele naamgeving open ik deze met volgende uitdrukking:
>
> for (my $i=0; $i<=9; $i++){
> open (naam_.$i, ">>naam_$i") or die "can't open naam_$i ";
> }
>
> Als ik nu de bestanden begin te beschrijven met een print opdracht:
>
> print naam_.$j "$variabele\n";
'.' is de concat-operator. Ik vermoed dat Perl hier 'naam_' en $i beschouwd
als strings die hij moet printen, vanwege '.'.
Verder is het feit dat je de filehandle na de for-loop aanspreekt met
naam_.$i, terwijl $i IN de for-loop een lexical variable was. Maw, gaat uit
scope na het einde van de for-loop.
Probeer eens met:
my @filehandles = ();
my @files = ();
for (my $i=0; $i<=9; $i++) {
my $handle = FH{$i};
my $file = "naam_" . $i
push @filehandles, $handle;
push @files, $file;
open($handle, ">>$file") or die "Cannot open file $file: $!";
}
Daarna kan je filehandle als volgt gebruiken:
select($filehandles[3]);
print "String to print";
of voor alle handles tegelijk:
foreach my $handle (@filehandles) {
print $handle "String to print";
}
--
Blood, sweat & tears
Technical Details
Message-ID:
<Zox6b.5911$D_4.226430@phobos.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!kibo.news.demon.net!demon!aotearoa.belnet.be!news.belnet.be!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mailReferences:
<pan.2003.09.06.23.13.38.305183@nospam.pandora.be.invalid>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,eea4ecbd77d046a1 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-09-06 20:15:07 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!news.maxwell.syr.edu!kibo.news.demon.net!demon!aotearoa.belnet.be!news.belnet.be!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail From: Gunter Schelfhout <nospam@please.com> Subject: Re: variabele filehandles in perl Newsgroups: be.comp.programming References: <pan.2003.09.06.23.13.38.305183@nospam.pandora.be.invalid> Lines: 49 User-Agent: KNode/0.7.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit Message-ID: <Zox6b.5911$D_4.226430@phobos.telenet-ops.be> Date: Sun, 07 Sep 2003 03:15:05 GMT NNTP-Posting-Host: 213.118.155.28 X-Complaints-To: abuse@telenet.be X-Trace: phobos.telenet-ops.be 1062904505 213.118.155.28 (Sun, 07 Sep 2003 05:15:05 MEST) NNTP-Posting-Date: Sun, 07 Sep 2003 05:15:05 MEST Organization: Telenet Internet