相关疑难解决方法(0)

Perl:遇到最后一个数组元素时断开foreach循环

Perl noob在这里.我有一个小脚本(见下文),我用它来构建一个MySQL INSERT语句.

use strict;

my @records = qw/Record1 Record2 Record3/;

my $insert = "
INSERT INTO table
VALUES
 ";

foreach my $record (@records) {
        $insert .= "('" . $record . "'),\n ";
}

print "$insert\n";
Run Code Online (Sandbox Code Playgroud)

电流输出

INSERT INTO table
VALUES
 ('Record1'),
 ('Record2'),
 ('Record3'),
Run Code Online (Sandbox Code Playgroud)

我需要知道如何打破@records数组的最后一个元素并附加一个;而不是,

期望的输出

INSERT INTO table
VALUES
 ('Record1'),
 ('Record2'),
 ('Record3');
Run Code Online (Sandbox Code Playgroud)

mysql arrays perl

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

Perl:如何打破嵌套循环?

我在Perl中遇到了一个问题.我想用Regex扫描巨大的文本文件.一切正常,但是当我在嵌套的while循环中找到Stop Codon时,第一个while循环接管,但它应该从找到的终止密码子的最后一个位置继续.有人能给我一个暗示在哪里看?

我已经尝试了最后一个声明,但这不起作用.

use strict;
use warnings;
$|=1;

sub read_Fasta {
    my ($filename) = @_;
  open (FIN, "<$filename") or die "Bestand $filename niet te openen\n";
  my $sequence = "";
  while (my $line = <FIN>) {
      if ($line =~ /^\s*$/) {
      next;
    } elsif ($line =~ /^\s*#/) {
      next;
    } elsif ($line =~ /^>/) {
      next;
    } else {
      $sequence .= $line;
    }
  }
  close (FIN);
  $sequence =~ s/\s//g;
  return ($sequence);
}

print "Het vinden van ORF's in een organisme.\n\n";
print …
Run Code Online (Sandbox Code Playgroud)

perl loops while-loop

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

Perl的"最后"做了什么?

在下面的代码中,lastwhile循环中有什么作用?如果$matrix[$i][$j]{pointer}变量等于"none"它调用,我得到它,last但它做了什么?

另外为什么$ matrix变量包括使用花括号的得分和指针?{score},我把它看作数组中的第三维,但这是别的吗?无法在谷歌上找到任何关于此的内容.谢谢!

my @matrix;
$matrix[0][0]{score}   = 0;
$matrix[0][0]{pointer} = "none";
#populate $matrix with more stuff

while (1) {
  last if $matrix[$i][$j]{pointer} eq "none"; #<-what is this "last" doing?
  #do some more stuff here
}
Run Code Online (Sandbox Code Playgroud)

perl

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

标签 统计

perl ×3

arrays ×1

loops ×1

mysql ×1

while-loop ×1