open( my $in, $infile ) or die "Couldn't read $infile: $!";
while ( <$in> ) {
# do something with $_
}
close $in;
####
sub firstline {
open( my $in, shift ) && return scalar <$in>;
# no close() required
}
##
##
$sth->bind_param($p_num, $bind_value)
$sth->bind_param($p_num, $bind_value, \%attr)
$sth->bind_param($p_num, $bind_value, $bind_type)
##
##
$dbh->{RaiseError} = 1; # save having to check each method call
$sth = $dbh->prepare("SELECT name, age FROM people WHERE name LIKE ?");
$sth->bind_param(1, "John%"); # placeholders are numbered from 1
$sth->execute;