标签: perlsyn

foreach my $ var(@list) - $ var是一个参考?

所以,我从来不知道这一点,我希望得到一些澄清.我知道你是否这样做

foreach (@list){
Run Code Online (Sandbox Code Playgroud)

如果在该循环中更改$ _,则会影响实际数据.但是,如果你这样做,我不知道

foreach my $var1 (@list){
Run Code Online (Sandbox Code Playgroud)

如果您在循环中更改了$ var1,它将更改实际数据.: - /那么,有没有办法循环@list但保持变量是只读副本,或者如果更改的副本不会更改@list中的值?

perl foreach perlsyn

8
推荐指数
2
解决办法
2万
查看次数

为什么Perl在使用bigint时警告"无用常数1"?

当我注意到语法检查结果警告无用的常量(1)时,我正在编写一个模块作为我的应用程序的一部分.这是为什么?

常量是1模块末尾的强制性,通常会被警告忽略,如下所示perldoc perldiag:

对于等于0或1的数值常量,不会发出此警告,因为它们通常用在类似的语句中

1 while sub_with_side_effects();
Run Code Online (Sandbox Code Playgroud)

(可能有一个更好的来源.毕竟1在文件的最后是完全需要的,不要被警告.)

但是,即使对于几乎空的模块,也会产生警告use bigint.

package Foo;

use bigint;

1;
Run Code Online (Sandbox Code Playgroud)

对于这个简单的文件语法检查,会产生以下警告:

$> perl -Wc Foo.pm
Useless use of a constant (1) in void context at Foo.pm line 5.
Foo.pm syntax OK
Run Code Online (Sandbox Code Playgroud)

bigint除了在sqlite中输入长十六进制数字之外,我找不到任何引用和警告消息,但我认为这并没有真正解决我的问题.

我的Perl是Cygwin的v5.14.4,bigint是0.36.

perl perl-module bigint perlsyn

8
推荐指数
2
解决办法
293
查看次数

Perl - 将代码块作为括号内的参数传递

是否可以使用"括号"语法将代码块传递给子代码?

即我写的时候

List::MoreUtils::any { defined ($_) } (undef, undef, 1);
Run Code Online (Sandbox Code Playgroud)

有用.但是当我尝试添加括号时

List::MoreUtils::any ( { defined ($_) } , (undef, undef, 1) );
Run Code Online (Sandbox Code Playgroud)

这被解释为匿名哈希,给出错误消息.无论是逃避还是使用eval都无济于事.

所有大惊小怪的想法是如果调用是表达式的一部分,即

if (first_index { defined (${$_})} $jms_positions > $jms_positionals_seen )
Run Code Online (Sandbox Code Playgroud)

参数之后的某些运算符可能会在调用之前执行,从而产生不需要的结果.

perl perlsyn perl5

3
推荐指数
2
解决办法
2334
查看次数

Perl中默认变量$ _的范围

我有以下方法接受变量,然后显示数据库中的信息:

sub showResult {
    if (@_ == 2) {
        my @results = dbGetResults($_[0]);
        if (@results) {
            foreach (@results) {
                print "$count - $_[1] (ID: $_[0])\n";
            }
        } else {
            print "\n\nNo results found";
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,除了foreach循环中的打印线.此$ _变量仍包含传递给方法的值.

无论如何要在$ _上"强制"新的值范围,还是它总是包含原始值?

如果有任何好的教程可以解释$ _的工作范围,那也很酷!

谢谢

perl default perlvar perlsyn

2
推荐指数
1
解决办法
4575
查看次数

Perl for循环解释

我正在查看perl代码,我看到了这个:

sub html_filter {
    my $text = shift;
    for ($text) {
        s/&/&/g;
        s/</&lt;/g;
        s/>/&gt;/g;
        s/"/&quot;/g;
    }
    return $text;
}
Run Code Online (Sandbox Code Playgroud)

for循环在这种情况下做了什么,为什么你会这样做?

perl for-loop perlsyn

1
推荐指数
3
解决办法
596
查看次数

涉及逗号的 perl 语法结构的含义

我在一本书中遇到过一段代码,如下所示:

#for (some_condition) {
#do something not particularly related to the question
$var = $anotherVar+1, next if #some other condition with $var
#}
Run Code Online (Sandbox Code Playgroud)

我不知道$anotherVar+1next之前的逗号 (",") 是什么意思。这种语法结构是如何调用的,它甚至正确吗?

perl perlsyn

1
推荐指数
1
解决办法
99
查看次数

标签 统计

perl ×6

perlsyn ×6

bigint ×1

default ×1

for-loop ×1

foreach ×1

perl-module ×1

perl5 ×1

perlvar ×1