小编Gre*_*con的帖子

在Perl语句结尾处@array的含义是什么意思?

我在Stack Overflow中看到了这段代码,它对我有用.请解释一下.

my @amino_acids = $genetic_codes[8] =~ /[ACGT]/g;
join ',', map qq{"$_"}, @amino_acids;
$codons{$_}++ for @amino_acids;
Run Code Online (Sandbox Code Playgroud)

for这段代码的目的是什么,我试着查看perldocs但是无法清楚地了解它.还有什么可以用来代替for

perl

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

如何省略包含Unicode NULL(U + 0000)的行?

我正在读一个文件,我想知道如何跳过具有Unicode NULL,U + 0000的行?我已尝试过以下所有内容,但都没有效果:

  • if($line)
  • chomp($line)
  • $line =~ s/\s*$//g;

regex unicode perl null nul

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

如何将科学转换为十进制表示法?

我有一个关于将$calc值从科学记数法转换为十进制的问题.有什么好主意吗?

my $calc = log2($prob/$probWords);

push @result, join(' ',@words) ." (".$calc.")\n";

if(scalar(@result) == $bloc)
{
  $cmp += $bloc;
  print "$cmp lignes traités\n";
  writeToResultFile($outFile,@result);
  @result = ();
}
Run Code Online (Sandbox Code Playgroud)

perl scientific-notation

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

如何返回数组和hashref?

我想创建一个子程序,将元素(带有值的键)添加到先前定义的散列中.该子例程在循环中调用,因此哈希增长.我不希望返回的哈希覆盖现有元素.

最后,我想输出整个累积的哈希值.

现在它不打印任何东西.最终的哈希看起来是空的,但不应该.我已经尝试了哈希引用,但它并没有真正起作用.在简短的表单中,我的代码如下所示:

sub main{
  my %hash;
  %hash=("hello"=>1); # entry for testing

  my $counter=0;
  while($counter>5){ 
    my(@var, $hash)=analyse($one, $two, \%hash);
    print ref($hash);

    # try to dereference the returning hash reference,
    # but the error msg says: its not an reference ...
    # in my file this is line 82
    %hash=%{$hash};

    $counter++;
  }

  # here trying to print the final hash
  print "hash:", map { "$_ => $hash{$_}\n" } keys %hash;
}

sub analyse{
  my $one=shift;
  my $two=shift;
  my %hash=%{shift @_};
  my …
Run Code Online (Sandbox Code Playgroud)

perl hash reference subroutine dereference

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

正则表达式与管道分隔符?

这是我的字符串:

my $var = "eval(sometext,'|function|65200|url|click|Chargement|margin'.split('|'),0,{}))"
Run Code Online (Sandbox Code Playgroud)

我想得到65200的数字,我试过这个my ($key) = $var =~ /eval.*?\|(\d+)\|.*$/正则表达式,但我什么都没得到.

regex perl

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

$ 1不包含值

我正在编写一个脚本,它使用正则表达式从文本文件中识别和提取各种不同格式的年份.这是有问题的代码:

if ($parts[0] =~ /^\(*(\d\d\d\d)\)*$/) {
    # Matches a single 4 digit date in parentheses such as (1979)
    $start = $1;
    $end = $1;
} 
elsif ($parts[0] =~ m{\d\d\d\d\/\d\d\d\d} ) {
    # Matches cases like 1948/1972
    warn "Found a $1";
    #do some other stuff
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是它找到与表达式匹配的日期elsif,但$1不保存值,"Found a "反复打印出一条消息,但没有值$1.谁能让我知道我在这里做错了什么?如果这是一个愚蠢的错误,我道歉.

谢谢!

regex perl

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

函数调用如果第二个参数为null,第三个参数给出第二个参数?

我是perl的新手,我定义了一个函数

sub ex_arg($_)
{
    print "$_[0]\n";
    print "$_[1]\n";
    print "$_[2]\n";
}
1;
Run Code Online (Sandbox Code Playgroud)

在另一个页面我打电话给那个页面.

require "ex_arg.pl";
ex_arg(1,2,3);
ex_arg(1,,3);  #in the second function i want the second parameter to be null
1;
Run Code Online (Sandbox Code Playgroud)

是否有可能做到这一点.我没有得到第二个参数而是第三个参数作为第二个参数.

难道我做错了什么.请纠正我.

提前致谢.

perl function

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

如何确定文件编码?

有没有gitfileLinux 一样返回文件编码的命令?这完全描述了我的问题.我试着搜索谷歌,但一无所获.

git encoding

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

如何将文件内容读入Perl标量?

我想要做的是从另一台服务器获取文件的内容.既然我不和perl一致,也不知道它的mods和函数iv'e就是这样:

 my $fileContents;
 if( $md5Con =~ m/\.php$/g ) {
     my $ftp = Net::FTP->new($DB_ftpserver, Debug => 0) or die "Cannot connect to some.host.name: $@";
     $ftp->login($DB_ftpuser, $DB_ftppass) or die "Cannot login ", $ftp->message;
     $ftp->get("/" . $root . $webpage, "c:/perlscripts/" . md5_hex($md5Con) . "-code.php") or die $ftp->message;
     open FILE, ">>c:/perlscripts/" . md5_hex($md5Con) . "-code.php" or die $!;
     $fileContents = <FILE>;
     close(FILE);
     unlink("c:/perlscripts/" . md5_hex($md5Con) . "-code.php");
     $ftp->quit;
 }
Run Code Online (Sandbox Code Playgroud)

我认为id做的是从服务器获取文件,放在我的本地机器上,编辑内容,上传到任何地方然后删除临时文件.

但我似乎无法弄清楚如何获取文件的内容;

open FILE, ">>c:/perlscripts/" . md5_hex($md5Con) . "-code.php" or die $!;
$fileContents = <FILE>; …
Run Code Online (Sandbox Code Playgroud)

html perl slurp file

0
推荐指数
2
解决办法
2122
查看次数

Perl - 测试作为成员变量的哈希引用中键的存在

我使用以下代码获得错误"Not a HASH reference".测试的正确方法是什么?哈希引用是类的成员变量?

package TestClass;

sub new {
    my ($class) = @_;

    my $self = {
        _ht => \{}
    };

    bless $self, $class;
    return $self;
}

sub itemExists {
    my ($self, $key) = @_;
    my $itemExists = 0;

    if(exists $self->{_ht}->{$key}) { # ERROR HERE: Not a HASH reference
        $itemExists = 1;
    }

    return $itemExists;
}

1;

# ------------------------------------------
package Main;

my $t = new TestClass();
$t->itemExists('A')
Run Code Online (Sandbox Code Playgroud)

perl hash exists

0
推荐指数
2
解决办法
2425
查看次数