我有以下数据结构:
@keys = [1, 2, 3, 4];
Run Code Online (Sandbox Code Playgroud)
并使用循环(for
)从1
到4
,我想创建像一个新的数据结构
$new = +{ key => '1',
meaning => '',
time => '', };
Run Code Online (Sandbox Code Playgroud)
所以,基本上我在这种情况下会有四个$new
数据结构.
我需要使用地图功能吗?
我想添加以下行:
%optflags "-O2"
Run Code Online (Sandbox Code Playgroud)
在使用shell的a.txt文件中.我写的时候:
{ echo "%optflags "-O2""
} >> a.txt
Run Code Online (Sandbox Code Playgroud)
它打印:
%optflags -O2
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想使用Shell将/etc/my.conf中的行添加为"sudo".
如果没有以sudo身份登录,我可以这样做:
{ echo "[mysqld]"
echo "default-character-set=utf8"
echo "character_set_server=utf8"
echo "[mysql]"
echo "default-character-set=utf8"
} >> /etc/my.conf
Run Code Online (Sandbox Code Playgroud)
但当:
sudo { echo "[mysqld]"
echo "default-character-set=utf8"
echo "character_set_server=utf8"
echo "[mysql]"
echo "default-character-set=utf8"
} >> /etc/my.conf
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
sudo: {: command not found
character_set_server=utf8
[mysql]
default-character-set=utf8 .....
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在处理像哈希这样的哈希:
my %hash1 = (
key1 => 0,
key2 => 1,
key3 => 0,
);
Run Code Online (Sandbox Code Playgroud)
如果所有值(不仅仅是一个值)的%hash1
值为1,我想做点什么.
怎么写呢?
作为参考,我可以写:
for $key ( keys %hash1 ) {
if ( $hash1{$key} == 1 ){
#do something
}
}
Run Code Online (Sandbox Code Playgroud)
这是错误的,因为即使一个键的值等于1,#do something
代码的一部分也会运行.我写的代码显然会做一些事情,如果至少有一个键等于1.这样的东西会很好:
for $key ( keys %hash1 ) {
if ( exists( $hash1{$key} == 1 ) ){
#do something
}
}
Run Code Online (Sandbox Code Playgroud) (EG在Perl中)当条件A或条件B具有相同的结果时
if (A){
# Consequence X
}elsif (B){
# Consequence X
}
Run Code Online (Sandbox Code Playgroud)
我们可以写
if ( A || B ) {
# Consequence X
}
Run Code Online (Sandbox Code Playgroud)
我们如何具备以下条件:当A和C为真,或者B和C为真时,结果C如下.
这可写得很长:
if ( A && C){
# Consequence X
} elsif (B && C ){
# consequence X
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有办法写这个更短?像这样的东西:
if ( (A && C) || (B && C) )
Run Code Online (Sandbox Code Playgroud)
语法上确定???
我倾向于使用shuffle方法随机化列表元素的顺序.例如,这是一个代替小游戏角色的代码:
sub assign_roles {
my ( $role_num_map ) = @_;
my @roles;
for my $role ( keys %$role_num_map ) {
next if $role_num_map->{$role} == 0;
push @roles, $role for ( 1 .. $role_num_map->{$role} );
}
my @shuffled_roles = shuffle @roles;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,"洗牌"如何使订单随机化?它使用什么方法? 如何从@shuffled_roles返回到$ role_num_map?
我正在寻找一种在Perl中生成以下内容的不太长的方法:
获取当前时间(月,日和年)的代码的一部分.例如,如果我们在2013年5月27日,那么输出应该是20130527
我现在认为,如果我们使用"本地时间",就像
$date_str = localtime;
Run Code Online (Sandbox Code Playgroud)
输出格式为:Wed Jul 18 07:24:05 2001还有其他特殊变量可用吗?
我有一个想要了解某些环境变量的perl文件.所以我可以补充一下:
$ENV{PLACK_ENV} = 'development'
Run Code Online (Sandbox Code Playgroud)
在代码和它的确定.
但有没有办法在不触及代码的情况下做到这一点?
ps:我正在使用linux
一般来说,有什么区别?
my $call = Module->new();
Run Code Online (Sandbox Code Playgroud)
和
my $call = Module->new;
Run Code Online (Sandbox Code Playgroud) 我想知道这些之间的区别:
my $a = 1;
Run Code Online (Sandbox Code Playgroud)
和
my $a == 1;
Run Code Online (Sandbox Code Playgroud)
和
my $a eq 1;
Run Code Online (Sandbox Code Playgroud) 在Perl中:
my %members = ( "fools" => 6,
"monsters" => 2,
"weirdos" => 1,
"coders" => 1,
"betrayers" => 1, );
Run Code Online (Sandbox Code Playgroud)
我写的时候:
my @values_members = values %members;
Run Code Online (Sandbox Code Playgroud)
数组中元素的位置不会是6,2,1,1,1(代码中"出现"的位置).它将是随机的或接近随机的.
我想要一个这样的功能:
my values_members = get_values_with_position_as_appears_in_code ( %members );
Run Code Online (Sandbox Code Playgroud)
给
( 6, 2, 1, 1, 1 );
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我正在寻找(如何制作?)一个功能(模块?)
my $scalar = 16;
return function ($scalar);
Run Code Online (Sandbox Code Playgroud)
给
@return = ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 );
Run Code Online (Sandbox Code Playgroud)
也就是说,给出1和$标量之间的非零整数.
可以假设$ scalar是一个很大的数字,但我并不是特别寻找一个超级最优的解决方案.