小编use*_*647的帖子

Perl正则表达式交替

我有以下字符串:

Data 250 MB
Data 1.5 GB
Data 10 GB
Run Code Online (Sandbox Code Playgroud)

我只需捕获值250 MB, 1.5 GB, 10 GB.所以我写了这个表达

(my $data) = $str1 =~ /Data (\S+ GB|MB)/ or die "$str1\n";

这适用于GB中的数据,但对于MB,我得到了结果Data 250 MB.任何人都可以解释原因吗?

regex perl

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

div中的多行字符串使用javascript

我创建了一个多行字符串如下"

var str1 = document.getElementById('text1');
var str2 = document.getElementById('text2');
var str = str1.value + "\n" + str2.value;
Run Code Online (Sandbox Code Playgroud)

我现在想要将此字符串添加到我在弹出窗口中创建的div,如下所示:

myWindow=window.open('','Full_text','width=600,height=600');
myWindow.document.write('<div id="div1" style="position: absolute; left: 10px; width: 580px; top: 30px; height: 550px; overflow: auto;">' + str + '</div>');
Run Code Online (Sandbox Code Playgroud)

但是我没有在div中获得多行字符串.我该如何解决这个问题?

html javascript

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

使用Perl CGI的复选框

对不起,如果我的问题太简单了,我刚开始使用CGI ...所以我有一堆同名的复选框.示例HTML:

<form action="/cgi-bin/checkbox.cgi" method="POST">
<input name="Loc_opt" value="Loc_1" type="checkbox">Option 1<br>
<input name="Loc_opt" value="Loc_2" type="checkbox">Option 2<br>
<input name="Loc_opt" value="Loc_3" type="checkbox">Option 3<br>
<input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我需要找出使用Perl CGI检查哪些.我在checkbox.cgi中有以下内容:

print "Content-type:text/html\r\n\r\n";
local ($buffer, @pairs, $pair, $name, $value, %FORM);
    # Read in text
    $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/;
    if ($ENV{'REQUEST_METHOD'} eq "POST")
    {
    read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
    }else {
    $buffer = $ENV{'QUERY_STRING'};
    }
    # Split information into name/value pairs
    @pairs = split(/&/, $buffer);
    foreach $pair (@pairs)
    {
    ($name, $value) = split(/=/, $pair);
    $value =~ tr/+/ /;
    $value …
Run Code Online (Sandbox Code Playgroud)

html checkbox perl cgi

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

Perl中奇怪的打印行为

我想从文件中读取一些数字到数组中,然后将它们作为语句的一部分打印出来.但我得到了一些奇怪的结果.该文件list1.txt包含以下文本:

01
02
15
30
43
75
76
Run Code Online (Sandbox Code Playgroud)

我要打印:

The number is: 01;
The number is: 02;
The number is: 15;
The number is: 30;
The number is: 43;
The number is: 75;
The number is: 76;
Run Code Online (Sandbox Code Playgroud)

所以我编写了以下简单程序:

my @arr;
my $i = 0;
open(my $file_fh,"<","list1.txt") or die "Could not find specified file\n";
while (<$file_fh>) {
    $arr[$i] = $_;
    chomp($arr[$i]);
    $i++;
}

foreach my $num (@arr) {
    my $stmt = "The number is: ".$num."\;";
    print "$stmt\n";
}
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是: …

perl cygwin

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

使用Perl查找复合主键的一部分

我试图通过Perl查询MySQL数据库.我的数据库有一个表,其主键是三列PK1,PK2和PK3的组合.我有数组arr1和arr2,它们分别包含一些PK1和PK2值.我想在数据库中为arr1和arr2的每种可能组合找到PK3的相应值(可能存在一些没有PK3值的组合).例如:

PK1 PK2 PK3
"JIM"   "RED"   1
"JOHN"  "BLUE"  2
"ANN"   "GREEN" 3
"ANN"   "WHITE" 4
"ME"    "BLACK" 5
"ME"    "RED"   6

arr1 = ("JIM", "ME", "ANN")
arr2 = ("BLACK", "RED")
Run Code Online (Sandbox Code Playgroud)

我应该得到结果:

arr3 = (1, 5, 6)
Run Code Online (Sandbox Code Playgroud)

我能想出的最佳解决方案是:

foreach my $el1 (@arr1) {
    $i = 0;
    $query = "SELECT PK3 FROM table WHERE PK1 = $el1 AND PK2 = ?;";
    foreach my $el2 (@arr2) {
        my $query_handle = $connxn->prepare($query);
        $query_handle->execute($el2);
        $query_handle->bind_columns(undef, \$rec);
        while($query_handle->fetch()) {
            push(@arr3, $rec); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为将有$ …

mysql perl

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

查找数组中的常见元素

我有一个散列,其值是数组.我需要找到那些数组的共同元素,即.所有数组中都存在的元素.所以我将哈希值提取到一个多维数组中,每个数组对应于哈希中的一个数组.然后我将这个矩阵的第一行放到另一个数组(@ arr1)中并迭代它以查找arr1中是否还有任何元素也在矩阵的其余行中.如果找到这样的元素,则将其推送到包含所有元素的最终列表的另一个数组.代码如下(我希望它足够清楚):

sub construct_arr(my %records) {
    my $len = keys %records;
    my @matrix;
    my $i = 0;

    # Extract the values of the hash into a matrix
    foreach my $key (keys %records) {
        $matrix[$i] = $records{$key};
        $i++;   
    }

    my @arr1 = $matrix[0];
    my @final;

    # Iterate through each element of arr1
    for my $j (0..$#{$arr1[0]}) {
        my $count = 1;

        # Iterate through each row of the matrix, starting from the second
        for ( my $i = 1; $i < …
Run Code Online (Sandbox Code Playgroud)

arrays perl

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

标签 统计

perl ×5

html ×2

arrays ×1

cgi ×1

checkbox ×1

cygwin ×1

javascript ×1

mysql ×1

regex ×1