我收到错误:
Remove leading / from member names
Run Code Online (Sandbox Code Playgroud)
尝试使用-X和排除文件创建域归档时.如果我删除-X选项,作业将按预期执行.
备份执行
/mnt/15326/s3/backup.sh
Run Code Online (Sandbox Code Playgroud)
tmp dir
/mnt/15326/s3/data
Run Code Online (Sandbox Code Playgroud)
排除文件
/mnt/15326/s3/data/exclude.txt
Run Code Online (Sandbox Code Playgroud)
内容
/mnt/15326/www.domain.com/dir1
/mnt/15326/www.domain.com/dir2
Run Code Online (Sandbox Code Playgroud)
dir备份
/mnt/15326/www.domain.com
Run Code Online (Sandbox Code Playgroud)
命令运行
tar cf /mnt/15326/s3/data/backup_domain.com -X /mnt/15326/s3/data/exclude.txt /mnt/15326/www.domain.com
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来在一个声明中完成这个:
./perlscript.pl ./inputFile "some option" > temp.sh; source temp.sh; rm -f temp.sh
Run Code Online (Sandbox Code Playgroud)
temp.sh 不
export ENV_VAR="some value"
Run Code Online (Sandbox Code Playgroud)
并在上述命令echo $ENV_VAR报告后some value.
我试过了
./perlscript.pl ./inputFile "some option" | source /dev/stdin
Run Code Online (Sandbox Code Playgroud)
并且脚本运行,但source似乎没有奏效; echo $ENV_VAR没有显示.我觉得这非常接近,但我的想法已经用完了.
有任何想法吗?
请解释为什么在函数定义之上调用这些Perl函数的方式决定了它们是否运行.
print "Why does this bare call to foo not run?\n";
foo;
print "When this call to foo() does run?\n";
foo();
print "And this call to &foo also runs?\n";
&foo;
sub foo {
print " print from inside function foo:\n";
}
print "And this bare call to foo below the function definition, does run?\n";
foo;
Run Code Online (Sandbox Code Playgroud) 冒号在我在某些生产代码中找到的Perl正则表达式中起什么作用?
if ($r->uri =~ m:/copy/(\d+):) {
my $ref = $1;
Run Code Online (Sandbox Code Playgroud)
代码正在解析URI,第二行使用捕获的组.
我正在使用DBIx::Class::Schema::Loader创建这样的架构:
#!/usr/bin/perl
use strict;
use warnings;
use DBIx::Class::Schema::Loader qw/make_schema_at/;
make_schema_at(
"Mydb::Schema",
{debug => 0, dump_directory => "../db/",
generate_pod => 0,},
["dbi:mysql:mydb:localhost:3306", 'mydb', 'password'],
);
Run Code Online (Sandbox Code Playgroud)
我在 MySQL 中的表名是people,但是当我运行此代码时,生成的类名为Mydb::Schema::Result::Person:
$ cat Mydb/Schema/Result/Person.pm
use utf8;
package Mydb::Schema::Result::Person;
# Created by DBIx::Class::Schema::Loader
# DO NOT MODIFY THE FIRST PART OF THIS FILE
use strict;
use warnings;
use base 'DBIx::Class::Core';
__PACKAGE__->table("people");
__PACKAGE__->add_columns(
"pplid",
{
data_type => "smallint",
extra => { unsigned => 1 },
is_auto_increment => 1,
is_nullable => …Run Code Online (Sandbox Code Playgroud) 我有一个标量变量,$var其中包含10个字节.删除我使用的那10个字节
$var =~ s/^(.{$numberOfbytes})//;
Run Code Online (Sandbox Code Playgroud)
如果少于10个字节,这可以正常工作.但是我希望一次删除超过4500个字节.我怎样才能做到这一点?
这是一个非常短的脚本,我试图使用PC的命令提示符来运行一系列脚本.脚本的数量各不相同,但是对于这个例子,假设有10个,编号为0-10.这些脚本是SAS程序文件.我正在使用该system命令,但有一个我无法发现的错误.
use strict; use warnings;
for ( my $i = 0; $i < 10; $i++ ) {
system "sas -SYSIN $i.sas -ICON -NOSPLASH -LOG 'c:\Users\...' -PRINT 'c:\Users\...' ";
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
"Missing braces on \o{} at "perlscript.pl" line 6, near "sas..."
Run Code Online (Sandbox Code Playgroud)
我在system命令后面的文本周围放置了大括号,但是没有修复它.我也试过括号(),但没有快乐.放入额外的大括号或()在读取文件位置时也会给出"无法识别的转义"错误.
我试图让我在网站上找到的示例代码工作:
#!/usr/bin/perl
use v5.10;
use WWW::Mechanize;
use WWW::Mechanize::TreeBuilder;
my $mech = WWW::Mechanize->new;
WWW::Mechanize::TreeBuilder->meta->apply($mech);
$mech->get( 'http://htmlparsing.com/' );
# Find all <h1> tags
my @list = $mech->find('h1');
# or this way
# Now just iterate and process
foreach (@list) {
say $_->as_text();
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我收到此消息:
Can't locate WWW/Mechanize.pm in @INC (@INC contains: /Library/Perl/5.16/darwin-thread-multi-2level /Library/Perl/5.16 /Network/Library/Perl/5.16/darwin-thread-multi-2level /Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2 /System/Library/Perl/5.16/darwin-thread-multi-2level /System/Library/Perl/5.16 /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level /System/Library/Perl/Extras/5.16 .) at test2.pl line 4.
BEGIN failed--compilation aborted at test2.pl line 4.
Run Code Online (Sandbox Code Playgroud)
有没有人对正在发生的事情有任何想法?
我有一列值(字符串),如下所示:
arg123ala
arg345ala_r
thr567por thr789pro
pro1ala,thr2leu
Run Code Online (Sandbox Code Playgroud)
我试图识别那些只满足以下模式的值,并且不存在额外的文本:
three letters-some numbers-three letters
Run Code Online (Sandbox Code Playgroud)
在前面的示例中,这将匹配第一个值,但不匹配其他三个值,因为它们具有额外的文本位,或者有两个模式的实例由空格或逗号分隔.
我尝试在Perl中使用这样的东西:
if ( $value =~ /^[[:alpha:]]{3}\d{1,9}[[:alpha:]]{3}$) {
$qualifier = "ok";
}
else {
$qualifier = "needs cleaning";
}
Run Code Online (Sandbox Code Playgroud)
实际上检查了regexplanet.com中的正则表达式,它在那里工作得很漂亮.但是,当我在我的代码中使用它时,它不匹配我上面列出的任何值,即使是第一个也没有.知道为什么会发生这种情况吗?关于替代方案的任何建议吗?