小编Sin*_*nür的帖子

为什么我的Perl代码中出现"过早调用原型"警告?

我有一个像这样的Perl文件:

use strict;
f1();

sub f3()
{ f2(); }

sub f1()
{}
sub f2()
{}
Run Code Online (Sandbox Code Playgroud)

简而言之,f1在定义之前被调用.因此,Perl发出警告:"f1过早调用原型".但情况也是如此f2,唯一的区别是它是从另一个子程序内部调用的.它不会发出警告f2.为什么?

解决此问题的最佳方法是什么?

  1. 在调用子例程之前声明子例程
  2. 像这样调用sub: &f1();

perl subroutine

12
推荐指数
3
解决办法
1万
查看次数

在Perl中,子类在基类中对方法进行别名的正确方法是什么?

我只是讨厌如何调用CGI :: ApplicationCGI对象访问器query.

我希望我的实例类能够使用一个名为的访问器cgi来获取CGI与我的CGI::Application子类的当前实例相关联的对象.

这是我正在做的事情的一个独立的例子:

package My::Hello;

sub hello {
    my $self =shift;
    print "Hello @_\n";
}

package My::Merhaba;

use base 'My::Hello';

sub merhaba {
    goto sub { shift->hello(@_) };
}

package main;

My::Merhaba->merhaba('StackOverflow');
Run Code Online (Sandbox Code Playgroud)

这是我认为它应该工作,我不能看到任何问题(比如说,如果我想继承My::Merhaba:子类不需要知道任何事情merhaba).

写作会更好/更正确吗?

sub merhaba {
    my $self = shift;
    return $self->hello(@_);
}
Run Code Online (Sandbox Code Playgroud)

使用goto &NAME方法名称别名的优点/缺点是什么?有没有更好的办法?

注意:如果你有回应的冲动goto是邪恶不要这样做,因为Perl的使用与goto你的想法不同.

oop perl goto

12
推荐指数
1
解决办法
555
查看次数

如何从ASP.NET MVC默认Mempership模型获取用户电子邮件地址?

我可以得到用户名:User.Identity.Name.我如何用户的电子邮件地址,因为它必须存储(注册表格中有一个文本框)?

asp.net-mvc

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

如何在任何操作系统上启动Perl中的默认Web浏览器?

我想http://www.example.com/在Perl脚本的末尾打开一个URL,例如.我不想使用WWW :: Mechanize访问它,但实际上是在图形Web浏览器中向用户显示该网页.

有办法在Mac(open URL)和Windows中执行此操作,但我想要一个适用于任何操作系统的解决方案,而不仅仅是一个.

browser url perl default

12
推荐指数
2
解决办法
9584
查看次数

Python与R之间线性回归系数的差异

我正在尝试在Python中运行我已经在R中完成的线性回归,以便找到具有0个系数的变量.我遇到的问题是R中的线性回归为具有低方差的列返回NAs,而scikit learn regression返回系数.在R代码中,我通过保存带有NAs的变量作为线性回归的输出来查找并保存这些变量,但我似乎无法找到在python中模仿这种行为的方法.我正在使用的代码可以在下面找到.

R代码:

a <- c(23, 45, 546, 42, 68, 15, 47)
b <- c(1, 2, 4, 6, 34, 2, 8)
c <- c(22, 33, 44, 55, 66, 77, 88)
d <- c(1, 1, 1, 1, 1, 1, 1)
e <- c(1, 1, 1, 1, 1, 1, 1.1)
f <- c(1, 1, 1, 1, 1, 1, 1.01)
g <- c(1, 1, 1, 1, 1, 1, 1.001)

df <- data.frame(a, b, c, d, e, f, g)
var_list = c('b', 'c', …
Run Code Online (Sandbox Code Playgroud)

python regression r pandas scikit-learn

12
推荐指数
1
解决办法
1336
查看次数

11
推荐指数
2
解决办法
5305
查看次数

如何在Ruby中执行向量添加?

如何在Ruby中执行向量添加

[100, 100] + [2, 3] 
Run Code Online (Sandbox Code Playgroud)

产量

[102, 103] 
Run Code Online (Sandbox Code Playgroud)

(而不是加入两个数组)?

或者它也可以是另一个运营商,例如

[100, 100] @ [2, 3] 
Run Code Online (Sandbox Code Playgroud)

要么

[100, 100] & [2, 3]
Run Code Online (Sandbox Code Playgroud)

ruby

11
推荐指数
2
解决办法
8475
查看次数

如何在Win32上只在Perl中打印一个unix换行符?

默认情况下,perl在win32环境中打印\ r \n.我怎么能覆盖这个呢?我正在使用perl对存储库中的某些源代码进行一些更改,我不想更改所有换行符.

我尝试更改输出记录分隔符,但没有运气.

谢谢!

编辑:想要包含一个代码示例 - 我正在搜索并替换一些遵循相对简单模式的文件,如下所示:

#!/usr/bin/perl
# test.pl

use strict;
use warnings;

$/ = undef;
$\ = "\n"; 
$^I=".old~";

while (<>) {
  while (s/hello/world/) {

  }
  print;
}
Run Code Online (Sandbox Code Playgroud)

对于在cmd行上传递的任何文件,这应该用"world"替换"hello"的任何实例.

编辑2:我尝试了最初binmode没有任何运气的建议.我钻了更多,发现(inplace edit特殊变量)覆盖了.任何工作仍然可以使用inplace编辑?$^Ibinmode

编辑3:作为思南低于所指出的,我需要使用binmode ARGVOUT带有$^I代替binmode STDOUT在我的例子.谢谢.

perl newline

11
推荐指数
2
解决办法
6572
查看次数

在perl中随机化矩阵,保持行和列总数相同

我有一个矩阵,我想随机化几千次,同时保持行和列总数相同:

     1 2 3 
   A 0 0 1 
   B 1 1 0 
   C 1 0 0      
Run Code Online (Sandbox Code Playgroud)

有效随机矩阵的一个例子是:

     1 2 3
   A 1 0 0
   B 1 1 0
   C 0 0 1
Run Code Online (Sandbox Code Playgroud)

我的实际矩阵要大得多(大约600x600项),所以我真的需要一种计算效率高的方法.

我的初始(低效)方法包括使用Perl Cookbook shuffle改组数组

我在下面粘贴了我当前的代码.如果在while循环中找不到解决方案,我已经有了额外的代码来启动一个新的洗牌数字列表.该算法适用于小矩阵,但只要我开始按比例放大,就需要永远找到符合要求的随机矩阵.

有没有更有效的方法来完成我正在寻找的东西?非常感谢!

#!/usr/bin/perl -w
use strict;

my %matrix = ( 'A' => {'3'  => 1 },
           'B' => {'1'  => 1,
               '2'  => 1 },
           'C' => {'1'  => 1 }
    );

my @letters = ();
my @numbers = ();

foreach my …
Run Code Online (Sandbox Code Playgroud)

random perl matrix

11
推荐指数
2
解决办法
1473
查看次数

如何在Perl中检查数组的所有元素是否相同?

我有一个阵列@test.检查数组中每个元素是否是同一个字符串的最佳方法是什么?

我知道我可以通过foreach循环来实现它但是有更好的方法吗?我检查了地图功能,但我不确定这是否是我需要的.

arrays perl

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