@text_lines = <STDIN>;
chomp($text_lines);
The statement chomp($text_lines); chomp-s the (nonexistent) scalar $text_lines not the @text_lines array.
Always
use warnings;
use strict;
at the start of your scripts. (Update: Actually, it's not accurate to describe $text_lines as "nonexistent": if strictures are not enabled (see strict), just referring to such a variable causes Perl to call it into existence. This is known as autovivification (see perlglossary), and such a scalar is initialized with a default value of undef. However, chomp-ing undef doesn't do very much, and the script never accesses $text_lines anywhere else, so...)
$column = <STDIN>;
This leaves $column un-chomp-ed.
say "$ruler" x $column;
Not sure what this is supposed to do.
rrrrr eeeeee tyyyyy
This is just one line.
c:\@Work\Perl\monks>perl -le
"use 5.010;
;;
use warnings;
use strict;
;;
say 'Please enter a few lines of text. Press ctrl-Z when finished';
my @text_lines = <STDIN>;
chomp(@text_lines);
;;
say 'Please enter the width of the column: ';
my $column = <STDIN>;
chomp $column;
;;
my $ruler = '1234567890';
say $ruler x $column;
;;
foreach (@text_lines) {
printf qq{%${column}s\n}, $_;
}
"
Please enter a few lines of text. Press ctrl-Z when finished
xyzzy
now is the time for all good men
x
foo bar
^Z
Please enter the width of the column:
7
1234567890123456789012345678901234567890123456789012345678901234567890
xyzzy
now is the time for all good men
x
foo bar
(Run under Windoze, so had to use ^Z instead of ^D.)
Update: Try
printf qq{%*s\n}, $column, $_;
as an experiment (see * format specifier in sprintf specifier definitions).
(Update: Tried that? Ok, now try
printf qq{%*.*s\n}, $column, $column, $_;
also.)
Give a man a fish: <%-{-{-{-<
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|