in reply to
Formatting output
chomp the input from /etc/passwd to remove the newlines, splitting into an array is much cleaner in my opinion. Checking your open calls and using strict and warnings is also good practice.
#!/usr/bin/perl -w
use strict;
open INPUT, "</etc/passwd" or die "Can't open file #!\n";
my @lines;
while (<INPUT>) {
chomp;
@lines = split /:/;
write();
}
format STDOUT_TOP =
NAME ID
---- --
.
format STDOUT =
@<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<
$lines[0], $lines[4]
.
Also, what systems is it failing on, what errors does it give?.