This is just rewriting your code with a basic few improvements, just to make it easier to work with. Note - your SQL statement is still borked.
sub getips {
my ( $j, $vlan ) = @_;
my $name = "ips" . $j;
my ($sth, $dbh, %ips, $i, @iparray);
my $dbh = DBI->connect('DBI:ODBC:Servers', { RaiseError => 1, Auto
+Commit => 0 });
my $sth = $dbh->prepare( <<__END_SQL__ );
SELECT IPs.octet1
,IPs.octet2
,IPs.octet3
,IPs.octet4
FROM IPs LEFT OUTER JOIN StaticIPs
ON IPs.Octet1 = StaticIPs.octet1
AND IPs.Octet2 = StaticIPs.octet2
AND IPs.Octet3 = StaticIPs.octet3
AND IPs.Octet4 = StaticIPs.octet4
WHERE StaticIPs.octet1 IS NULL
AND IPs.VLAN = ?
__END_SQL__
$sth->execute( $vlan );
my @ips;
$sth->bind_columns( \( $ips[0], $ips[1], $ips[2], $ips[3] ) );
$sth->{'ChopBlanks'} = 1;
my @iparray;
while ($sth->fetch) {
next unless $ips[0];
push @iparray, join '.', @ips;
}
$sth->finish();
$dbh->disconnect();
print scrolling_list(
-class => 'df',
-name => $name,
-size => 1,
-values => [@iparray],
-default => $iparray[-1]
);
}
- In general, if you think something isn't in Perl, try it out, because it usually is. :-)
- "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"
-
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.