The problem is that
print is defined as
print LIST (type
perldoc -f print to see it) and therefore interprets
<file1> not as a scalar, but an array whose contents are joined as they are printed. Because you can read files only sequentially, you are now at the end of the file and there is no more data. Workarounds:
open(FILE, '<', 'sample.txt') or die "Could not open 'sample.txt' for
+input: $!\n";
print scalar(<FILE>); # print ONE LINE from the file
$line2 = <FILE>; # get ONE LINE from the file
close FILE;
print $line2;
### OR, alternatively
open(FILE, '<', 'sample.txt') or die "Could not open 'sample.txt' for
+input: $!\n";
print <FILE>; # print WHOLE FILE
seek FILE, 0, 0; # go to beginning of file
$line1 = <FILE>; # get ONE LINE from the file
close FILE;
print $line1;
One tip: Always catch return values of system functions (such as
open) or your program will do things that you don't want it to.
Cheers,
CombatSquirrel.
Entropy is the tendency of everything going to hell.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.