I'm just starting with Perl, and have noticed a problem that my book can't
answer. It seems very basic.

Here is some info.
[localhost:~/Perl] tor% perl -v

This is perl, v5.6.0 built for darwin

[localhost:~/Perl] tor% cat test
this is line nr 1
this is line nr 2
etc..
...
this is the last line in the file

[localhost:~/Perl] tor% cat 23.pl
#!/usr/bin/perl

if(open(FILE1, "/Users/tor/Perl/test")) {
        $line = <FILE1>;
           print ("This is the contents of the file\n");
           while($line ne " ") {
           print ($line);
           $line = <FILE1>;
           }
}

[localhost:~/Perl] tor% perl 23.pl
This is the contents of the file
this is line nr 1
this is line nr 2
etc..
...
this is the last line in the file

<Here the while loops just hangs, and the program never ends without me
using ^C>

I simply can't figure out why it won't die, or end.
My understanding goes like this:
When the while-loop reaches the last line of the file test(it will be a null
string), the while-statement should become false because $line IS EQUAL to
the null string. This doesn't happen.
Does anyone have clue on why?

I also have another little quirk that the book doesn't cover.
I would like to write a more flexible program, so I want the user to input a
filename, and then open that file, and later on it the program use that
filename in a printed string.
If I use: if(open(FILE1, "/Users/tor/Perl/test")) { # The "reference" to
/Users/tor/Perl/test is FILE1
Then try something like:
print ("The contents of the file ", FILE1, " is:\n");
It doesn't print the filename(/Users/tor/Perl/test).
Some information/pointers on that would also be appreciated.

Best reguards

-- 
T.


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to