我有 Solaris 10,我正在尝试运行 Perl 程序。
我安装了两个 perl 版本:
/usr/bin/perl
版本 5.8.4
和
/usr/local/bin/perl
版本 5.12.3
我已经安装了 DBI 包(它安装在这里,/usr/perl5/site_perl/5.8.4/sun4-solaris-64int/auto/DBI/.packlist
),我通过执行不同perl
版本的 Perl 程序得到的问题是(在 ubuntu 中它工作正常)。
bash-3.00# perl temp.pl 在@INC 中找不到 Time/Piece.pm(@INC 包含:/usr/perl5/5.8.4/lib/sun4- solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4- solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl .) 在 temp.pl 第 4 行。 BEGIN failed——编译在 temp.pl 第 4 行中止。 bash-3.00# /usr/local/bin/perl temp.pl 无法在 @INC 中找到 DBI.pm(@INC 包含:/usr/local/lib/perl5/site_perl/5.12.3 /sun4-solaris /usr/local/lib/perl5/site_perl/5.12.3 /usr/local/lib/perl5/5.12.3/sun4- solaris /usr/local/lib/perl5/5.12.3 /usr/local/lib/perl5/site_perl .) 在 temp.pl 第 5 行。 BEGIN failed——编译在 temp.pl 第 5 行中止。
我已经尝试了很多方法,但没有得到如何在 solaris 上运行我的 Perl 程序。有人可以帮忙吗。
下面是我的程序。事实上它是由@Borodin 重新定义的。非常感谢他。
use strict;
use warnings;
use Time::Piece;
use DBI;
open my $log, '<', '/opt/testlogs/test.log' or die "Unable to open log file: $!";
my ( $count_start, $count_interim, $count_stop ) = ( 0, 0, 0 );
while (<$log>) {
if (/server start/) {
$count_start++;
}
elsif (/server interim-update/) {
$count_interim++;
}
elsif (/server stop/) {
$count_stop++;
}
}
print <<END;
Start: $count_start
Interim: $count_interim
Stop: $count_stop
END
print localtime->strftime("%b %e %H:%M:%S"), "\n";
my $dbh = DBI->connect( "DBI:Pg:dbname=postgres;host=localhost", "postgres", "postgres", { 'RaiseError' => 1 } );
my $rows = $dbh->do(
"insert into radius (server_start, server_stop, server_interim)
Values ($count_start, $count_stop, $count_interim)"
);
printf "%d %s affected\n", $rows, $rows == 1 ? 'row' : 'rows';