in reply to Clever Padding

I was wondering which that inventive method is

Switching to printf is far more than 4 characters.

print("$line_num $rest\n"); printf("%03d %s\n", $line_num, $rest); 12345678901

Maybe he's referring to string autoincrement.

If you start with

$ perl -e'my $i=0; while (<>) { print ++$i, " $_" }' file 1 foo 2 bar 3 baz 4 qux

then this is just four more characters:

1 234 $ perl -e'my $i="000"; while (<>) { print ++$i, " $_" }' file 001 foo 002 bar 003 baz 004 qux

(Note that the trick will fail if you use $i as an number.)

I would have started with

$ perl -e'while (<>) { print "$. $_" }' file 1 foo 2 bar 3 baz 4 qux

so I would have had to add far more characters than four. In fact, using printf is still shorter:

$ perl -e'while (<>) { printf "%03d %s", $., $_ }' file 001 foo 002 bar 003 baz 004 qux

(Avoiding -p and -l since this is suppose to be part of a larger program.)