我想在/ usr/local/lib/perl中创建自己的Perl模块
我有环境变量PERL5LIB设置:
$ env | grep PERL
PERL5LIB=/usr/local/lib/perl
Run Code Online (Sandbox Code Playgroud)
如果我创建一个模块:$ PERL5LIB/My/ModuleTest.pm
$ ./test.pl
Can't locate object method "new" via package "My::ModuleTest" (perhaps you forgot to load "My::ModuleTest"?) at ./test.pl line 8.
Run Code Online (Sandbox Code Playgroud)
test.pl:
#!/usr/bin/perl
use strict;
use warnings;
use My::ModuleTest;
my $test = new My::ModuleTest;
print $test->check;
Run Code Online (Sandbox Code Playgroud)
ModuleTest.pm:
package ModuleTest;
use strict;
use warnings;
sub new {
my $class = shift;
my ($opts)= @_;
my $self = {};
$self->{test} = "Hello World";
return bless $self, $class;
}
sub check {
my …Run Code Online (Sandbox Code Playgroud) 我不确定如何最好地表达这一点,特别是在尝试研究它时.当我的页面加载jqgrid时,我试图在搜索字符串中添加一个额外的参数:
HTTP://localhost/jqgrid.cgi _search =假ND = 1308125954351&行= 25页= 1&SIDX =变化与SORD = ASC
我只想在URL字符串中添加一个额外的"value = something",以用作我的SQL调用的参数.此参数不是网格中包含的值,它只是我希望在用于构建网格的页面的WHERE子句中使用的值.
期望的结果:
http://localhost/jqgrid.cgi?_search = false&nd = 1308125954351&rows = 25&page = 1&sidx = Change&sord = asc &value = something
我正在尝试在脚本中编写更高效的代码,并且有时会实现三元条件运算符.在循环中使用三元条件运算符时,我无法理解为什么会得到额外的结果:
#!/usr/bin/perl
use strict;
use warnings;
my @array = ('Serial = "123"', 'Serial = "456"', 'Serial = "789"');
my ($test1,$test2);
foreach my $a (@array){
!$test1 ? $test1 = $a : $test1 .= " AND " . $a;
}
foreach my $b (@array){
if (!$test2) {
$test2 = $b
} else {
$test2 .= " AND " . $b;
}
}
print "Test1: $test1\n";
print "Test2: $test2\n";
Run Code Online (Sandbox Code Playgroud)
输出:
~/bin/test.pl
Test1: Serial = "123" AND Serial = "123" AND Serial = "456" …Run Code Online (Sandbox Code Playgroud) 我正在尝试为嵌套的if语句编写一个条件,但是没有找到使用if语句的好例子.以下elsif条件失败,并允许嵌套在其下的代码在以下情况下触发$status == 6:
if ($dt1 > $dt2 ) {do one thing}
elsif(($status != 3) || ($status != 6)) { do something else}
else {do something completely different}
Run Code Online (Sandbox Code Playgroud)
我想避免为每个条件设置另一个elsif,因为实际驻留在这里的代码是几行.