我在文件中有以下字符串,并希望将字符串截断为不超过6个字符.如何在perl中使用正则表达式?
原始文件是:
cat shortstring.in:
<value>1234@google.com</value>
<value>1235@google.com</value>
我想把文件作为:
cat shortstring.out
<value>1234@g</value>
<value>1235@g</value>
我有一个如下代码,有没有比使用更有效的方法
s/<value>(\w\w\w\w\w\w)(.*)/$1/;?
这是我的代码的一部分:
while (<$input_handle>) { # take one input line at a time
chomp;
if (/(\d+@google.com)/) {
s/(<value>\w\w\w\w\w\w)(.*)</value>/$1/;
print $output_handle "$_\n";
} else {
print $output_handle "$_\n";
}
}
Run Code Online (Sandbox Code Playgroud) 我正在努力使用Haskell编程.
我有下面的列表,我想让它堆叠在一起,所以它就像3 x 4像素的图像.例如:

以及如何更改第一行或第二行的值...例如:说我想让它更暗或更白(0代表黑色,255代表白色)
type Pixel = Int
type Row = [Pixel]
type PixelImage = [Row]
print :: PixelImage
print = [[208,152,240,29],[0,112,255,59],[76,185,0,152]]
Run Code Online (Sandbox Code Playgroud)
我在这里得到的代码没有堆叠列表,我不知道如何堆叠它.
请帮忙,我真的很挣扎.
提前致谢!
我使用Perl来读取文件的每一行.我使用命令行工具来调用服务,我注意到一些有趣的功能,我无法弄清楚如何搜索.$cmd我为变量分配了调用服务的命令.如果我$cmd稍后在代码中引用它打印出命令行参数,但是如果我将其称为`$cmd`,则它会提供运行服务的输出.
对此有何解释?
我使用以下代码获得错误"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) 我有以下隐藏的形式:
<form id='export_svg_container_single_form'
action='exportSVG.pl'
method='post'
target='_blank'
style='display:none;'>
<input type='text'
id='export_svg_container_single_form_data'
name='export_svg_data'
style=';' />
</form>
Run Code Online (Sandbox Code Playgroud)
export_svg_data在表单提交之前,字段值将填充SVG文档.
提交时,这将作用于以下简单的CGI脚本,用Perl编写:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Pretty qw/:standard/;
my $val = param('export_svg_data');
print "Content-Type:image/svg+xml\n";
print "Content-Disposition: inline\n";
print "Content-Description: File to download\n\n";
print $val;
Run Code Online (Sandbox Code Playgroud)
提交时,隐藏表单还会打开一个新选项卡并显示(在本例中)SVG文档.然后,最终用户可以将窗口保存到文件中.
相反,在提交表单时,我想要做的是让浏览器自动打开" 保存"或" 另存为"对话框,以便用户可以选择文件名并保存文档,而不是在浏览器窗口中呈现SVG.
我如何使用JavaScript或对CGI脚本进行适当的更改?(我想保持父表单页面不变,即打开新的选项卡或窗口,如果需要的话.)感谢您的建议.
为了再次澄清,我正在寻找一个解决方案,它会打开" 保存"对话框.我不希望脚本确定文件名并将其保存在任意位置,无需任何用户干预.
我有一些值存储在变量$a中$b,$c.现在我要将这些值加载到新文件中(创建文件和加载).我是Perl的新手,我该怎么办?
我有名为$A_cine,等的整数标量变量$B_cine.
我也有一个子程序display这需要一个参数'A','B','C',等.
我$letter = $_[0]在子程序中分配.我现在想要获取$A_cine或的值,$B_cine并将其分配给新的标量变量$cine.
我已经尝试过$cine = '$'.$view."_cine",这可以识别$cine为字符串$A_cine(它应该).但是,有没有办法解释$A_cine所以我可以得到$A_cine之前定义的标量的数值?
如何消除$e->{aa}{$_}下面表达式中的重复术语?
my $e = {aa=>{aa=>1,bb=>2,c=>undef}};
my $s = " ". (defined $e->{aa}{$_} ? $e->{aa}{$_} :'null') ." ";
Run Code Online (Sandbox Code Playgroud) #include <stdint.h>
#include <stdlib.h>
#include <VideoInChain.h>
#include <VideoOutChain.h>
#include <stdint.h>
#include <stdlib.h>
...//rest of code
Run Code Online (Sandbox Code Playgroud)
有系统头文件重复我需要删除而不影响其余的代码
我试过了
sub uniq {
my %seen = ();
my @r = ();
foreach my $a (@_) {
unless ($seen{$a}) {
push @r, $a;
$seen{$a} = 1;
}
}
return @r;
}
@lines_temp = uniq(@lines_temp);
Run Code Online (Sandbox Code Playgroud)
但它删除了所有类型的重复,包括'(','{'和空格
我只需要删除重复的系统文件
我的git存储库有四个分支:master,bch1,bch2和bch3.现在我想test在每个分支上添加相同的文件.我该怎么做呢?
我需要模仿以下Perl代码的功能
if($file =~ /^([^_]+)_([^_]+)_MA_(\d{4})(\d\d)(\d\d)_(\d\d)(\d\d)(\d\d)\.MA$/) {
my ($radar, $beam, $year, $month, $day, $hour, $min, $sec) =
($1, $2, $3, $4, $5, $6, $7, $8);
my $file_ts = sprintf("%04d-%02d-%02d %02d:%02d:%02d",
$year, $month, $day, $hour, $min, $sec);
# ...
}
Run Code Online (Sandbox Code Playgroud)
在C++中.我使用哪种功能?
我该怎么写
f 0 = 1
f x = (f(x-1))*2 + 2
Run Code Online (Sandbox Code Playgroud)
作为哈斯克尔的一个lambda?
谢谢你的期待.
我正在尝试制作一个程序,让用户可以放入一些城市和城市的温度.之后,温度列表将自行排序,以便我可以获得列表中最冷和最热的城市.但问题是只有温度列表才会被排序.这使得城市的温度与以前不同.
那么我可以将两个列表链接在一起,这样当第二个列表中的温度发生变化时,原来得到温度的城市会改变到哪个位置?
我对编程很陌生.
谢谢.