小编Gre*_*con的帖子

如何在perl中使用正则表达式截断字符串

我在文件中有以下字符串,并希望将字符串截断为不超过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)

regex perl

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

Haskell列表帮助!

我正在努力使用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)

我在这里得到的代码没有堆叠列表,我不知道如何堆叠它.

请帮忙,我真的很挣扎.

提前致谢!

haskell

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

Perl中的'''字符有什么作用?

我使用Perl来读取文件的每一行.我使用命令行工具来调用服务,我注意到一些有趣的功能,我无法弄清楚如何搜索.$cmd我为变量分配了调用服务的命令.如果我$cmd稍后在代码中引用它打印出命令行参数,但是如果我将其称为`$cmd`,则它会提供运行服务的输出.

对此有何解释?

perl

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

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
查看次数

如何通过CGI触发浏览器保存文件?

我有以下隐藏的形式:

<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脚本进行适当的更改?(我想保持父表单页面不变,即打开新的选项卡或窗口,如果需要的话.)感谢您的建议.

为了再次澄清,我正在寻找一个解决方案,它会打开" 保存"对话框.我不希望脚本确定文件名并将其保存在任意位置,无需任何用户干预.

html browser perl user-interface cgi

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

如何在Perl中创建新文件?

我有一些值存储在变量$a$b,$c.现在我要将这些值加载到新文件中(创建文件和加载).我是Perl的新手,我该怎么办?

perl serialization perl-io

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

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之前定义的标量的数值?

perl

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

消除重复的表达

如何消除$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)

perl

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

如何删除重复的#include指令?

#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)

但它删除了所有类型的重复,包括'(','{'和空格

我只需要删除重复的系统文件

perl hash

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

在存储库的所有分支上添加相同的文件

我的git存储库有四个分支:master,bch1,bch2和bch3.现在我想test在每个分支上添加相同的文件.我该怎么做呢?

git

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

使用sprintf的这个Perl代码的C++等价物是什么?

我需要模仿以下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++中.我使用哪种功能?

c++ perl printf

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

如何将使用模式匹配定义的函数转换为等效的lambda?

我该怎么写

f 0 = 1
f x = (f(x-1))*2 + 2 
Run Code Online (Sandbox Code Playgroud)

作为哈斯克尔的一个lambda?

谢谢你的期待.

haskell

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

将两个不同类型的列表链接在一起

我正在尝试制作一个程序,让用户可以放入一些城市和城市的温度.之后,温度列表将自行排序,以便我可以获得列表中最冷和最热的城市.但问题是只有温度列表才会被排序.这使得城市的温度与以前不同.

那么我可以将两个列表链接在一起,这样当第二个列表中的温度发生变化时,原来得到温度的城市会改变到哪个位置?

我对编程很陌生.

谢谢.

c#

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

标签 统计

perl ×9

hash ×2

haskell ×2

browser ×1

c# ×1

c++ ×1

cgi ×1

exists ×1

git ×1

html ×1

perl-io ×1

printf ×1

regex ×1

serialization ×1

user-interface ×1