#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect ("DBI:CSV:");
$dbh->{csv_tables}{passwd} = {
sep_char => ":",
quote_char => undef,
escape_char => undef,
file => "/etc/passwd",
col_names => [qw( login password uid gid realname directory shell )],
};
my $sth = $dbh->prepare ("SELECT * FROM passwd");
$sth->execute;
my %fld;
my @fld = @{$sth->{NAME_lc}};
$sth->bind_columns (\@fld{@fld});
while ($sth->fetch) {
printf "%-14s %5d %5d %-25.25s %-14.14s %s\n",
@fld{qw( login uid gid realname shell directory )};
}