我有以下字符串:
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
.任何人都可以解释原因吗?
我创建了一个多行字符串如下"
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中获得多行字符串.我该如何解决这个问题?
对不起,如果我的问题太简单了,我刚开始使用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) 我想从文件中读取一些数字到数组中,然后将它们作为语句的一部分打印出来.但我得到了一些奇怪的结果.该文件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查询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)
但这不起作用,因为将有$ …
我有一个散列,其值是数组.我需要找到那些数组的共同元素,即.所有数组中都存在的元素.所以我将哈希值提取到一个多维数组中,每个数组对应于哈希中的一个数组.然后我将这个矩阵的第一行放到另一个数组(@ 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)