Home > Archive > PERL Beginners > October 2004 > Reading from a filehandle in while-loop
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Reading from a filehandle in while-loop
|
|
| Bastian Angerstein 2004-10-26, 8:55 am |
|
Why does this don´t work in my Script?
open (TEST, "</tmp/test.txt");
while (<TEST> ) {
print $_;
# or just
print;
}
| |
| Flemming Greve Skovengaard 2004-10-26, 8:55 am |
| Bastian Angerstein wrote:
> Why does this don´t work in my Script?
>
> open (TEST, "</tmp/test.txt");
> while (<TEST> ) {
> print $_;
> # or just
> print;
> }
>
>
Does the file exists and can you read it?
--
Flemming Greve Skovengaard The killer's breed or the Demon's seed,
a.k.a Greven, TuxPower The glamour, the fortune, the pain,
<dsl58893@vip.cybercity.dk> Go to war again, blood is freedom's stain,
4112.38 BogoMIPS Don't you pray for my soul anymore.
| |
| Chris Cole 2004-10-26, 8:55 am |
| On Tue, 26 Oct 2004 11:44:53 +0200, Flemming Greve Skovengaard wrote:
> Bastian Angerstein wrote:
>
> Does the file exists and can you read it?
Try this instead:
open (TEST, "</tmp/test.txt") or die "can't open file: $!\n";
while (<TEST> ) {
print $_;
# or just
print;
}
You should always test if a file open has succeeded. With as your scripts
get more involved remember to use warnings and strict.
HTH
Chris.
| |
| Flemming Greve Skovengaard 2004-10-26, 8:55 am |
| Bastian Angerstein wrote:
> Joop,
> if I use open... or die "$!" i see that the file is opened correctly but nothing is in $_.
>
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: Flemming Greve Skovengaard [mailto:dsl58893@vip.cybercity.dk]
> Gesendet: Dienstag, 26. Oktober 2004 11:45
> An: beginners@perl.org
> Cc: Bastian Angerstein
> Betreff: Re: Reading from a filehandle in while-loop
>
>
> Bastian Angerstein wrote:
>
>
>
> Does the file exists and can you read it?
>
Bottompost, please.
Your script works on my machine. Is this you whole script, do you use:
use strict;
use warnings;
in your script and is there any content in /tmp/test.txt?
--
Flemming Greve Skovengaard The killer's breed or the Demon's seed,
a.k.a Greven, TuxPower The glamour, the fortune, the pain,
<dsl58893@vip.cybercity.dk> Go to war again, blood is freedom's stain,
4112.38 BogoMIPS Don't you pray for my soul anymore.
| |
| Flemming Greve Skovengaard 2004-10-26, 8:55 am |
| Bastian Angerstein wrote:
> I noticed that while ($test=<TEST> ) works on my system perfectly but while (<TEST> ) don´t ... don´t know why...
> should reinstall perl.
>
> Thanks for your help
> Bastian
They should both work, why they don't is beyond me.
Please post on the list, I am *not* a all-seeing, all-knowing Perl guru,
you know, while I can't answer why one work and the other doesn't someone else
on the list might.
And again, please bottompost.
--
Flemming Greve Skovengaard FAITH, n.
a.k.a Greven, TuxPower Belief without evidence in what is told
<dsl58893@vip.cybercity.dk> by one who speaks without knowledge,
4112.38 BogoMIPS of things without parallel.
| |
| David le Blanc 2004-10-26, 3:56 pm |
| On Tue, 26 Oct 2004 11:33:24 +0200, Bastian Angerstein
<ang@nmc-m.dtag.de> wrote:
>=20
> Why does this don=B4t work in my Script?
>=20
> open (TEST, "</tmp/test.txt");
> while (<TEST> ) {
> print $_;
> # or just
> print;
> }
You are making the assumption that '<TEST>' sets '$_' which is not
true. Oddly, perl makes '<>' set $_, but not <FILE>... dunno why
consider
while( $_ =3D <TEST> ) {
}
>=20
> --
> To unsubscribe, e-mail: beginners-unsubscribe@perl.org
> For additional commands, e-mail: beginners-help@perl.org
> <http://learn.perl.org/> <http://learn.perl.org/first-response>
>=20
>
| |
| Bob Showalter 2004-10-26, 3:56 pm |
| David le Blanc wrote:
....
> You are making the assumption that '<TEST>' sets '$_' which is not
> true. Oddly, perl makes '<>' set $_, but not <FILE>... dunno why
Sorry, but that's just not correct.
while (<TEST> )
DOES set $_, as documented in perldoc perlop under the secion "I/O
Operators"
The OP has some other problem.
| |
| Randal L. Schwartz 2004-10-27, 3:55 am |
| >>>>> "David" == David le Blanc <dmleblanc@gmail.com> writes:
David> You are making the assumption that '<TEST>' sets '$_' which is not
David> true. Oddly, perl makes '<>' set $_, but not <FILE>... dunno why
No, that's completely wrong.
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
|
|
|
|
|