草庐IT

linux - perl 中的系统命令行最大长度

为了减少发出的命令数量,我需要在perl语句中放入尽可能多的字符system("$cmd_and_parameters")在Windows和Linux下,我可以假设的(安全)最大行长度是多少?我的问题是因为需要发出Oetiker“rrdtool套件”的命令,没有使用正确的perl模块(请不要为此责怪我)。我的第一次尝试是使用前面提到的功能,设置$cmd_and_parameters="path_to_rrdtool/rrdtoolupdate$db$timestamp:$value"它可以工作,但速度很慢,考虑到我必须执行的更新次数。因此,在“rrdtoolupdate”允许的情况下,

windows - 为什么此路径无法在 PERL 中打开 Windows 文件?

我尝试使用StrawberryPerl,但让我感到困惑的其中一件事是阅读文件。我尝试过:open(FH,"D:\test\numbers.txt");但是它找不到文件(尽管文件在那里,并且没有权限问题)。等效代码(除文件名外,脚本100%相同)在Linux上运行良好。 最佳答案 根据PerlFAQ5,您应该在DOS/Windows文件名中使用正斜杠(或者,作为替代方案,转义反斜杠)。Whycan'tIuse"C:\temp\foo"inDOSpaths?Whydoesn't`C:\temp\foo.exe`work?Whoops!Y

windows - 在 Windows 上使用包含美元符号的字符串进行 Perl 替换

我在Windows上使用perl,并尝试使用perl做一个单行代码,以使用包含美元符号的windows变量替换文件中的占位符。有谁知道使它与美元符号一起使用的正确用法是什么。我尝试了各种方法,但似乎无法让它发挥作用。例如,我有一个属性文件,其中包含一个token(!MYPASSWORD!),我正在尝试将其替换为:somevalue="!MYPASSWORD!"我有一个批处理文件,它查找一个名为NEWPASSWORD的变量,其中包含密码$abc12345$,我想使用perl替换来替换如下值。请注意,我可能并不总是知道$符号在哪里,所以我无法避开它们。例如,另一个密码可能是abc$124$

windows - 如何在 Windows 上使用 Perl 的默认应用程序打开文件?

我有一个文件目录,我想定期扫描这些文件并使用它们关联的默认应用程序执行。它们不可执行,所以system("file.torrent");不起作用。您如何使用Perl中的关联应用程序运行文件? 最佳答案 标准的Windows方式是使用ShellExecute.在perl中,您可以使用ShellExecute来完成。它在Win32::GUIpackage.没试过。但它看起来很简单。 关于windows-如何在Windows上使用Perl的默认应用程序打开文件?,我们在StackOverflo

windows - 如何使用 Perl 从 8.3 DOS 路径获取完整的 Win32 路径?

我的问题基本上说明了一切。我得到这个:C:\DOCUME~1\frew\MYDOCU~1\Code\AIRCRA~1\lib\ACD\VALIDA~1.PM我想要这个:C:\DocumentsandSettings\frew\MyDocuments\Code\aircraft_ducting\lib\ACD\Validators.pm我查看了File::Spec::Win32,但似乎没有任何东西可以解决问题。想法?谢谢! 最佳答案 您可以使用Win32::GetLongPathName($path)来自Win32模块。

windows - Perl Net::SSH2 scp_put 放入文件然后挂起

我正在使用Net::SSH2的scp_put方法从Windows机器将一个文件放置在我在Unix服务器上的主目录中。我正在使用StrawberryPerl5.12(便携版)。我安装了libssh21.2.5二进制文件,然后从cpan安装了Net::SSH2。这是我的代码片段:subuploadToHost{my$file=@_[0];my$host=@_[1];my$user=@_[2];my$pass=@_[3];my$remotelocation=@_[4];#makesanewSSH2objectmy$ssh=Net::SSH2->new()ordie"couldn'tmakeS

windows - 为什么我在 Windows 上使用 Perl-Tk 构建复杂的 GUI 时遇到问题?

我有一个带有大约50个子窗口的Perl-TkGUI。在每个子窗口中大约有50个按钮和50个菜单(每个菜单有大约4个选项)。当我在UNIX/Linux/Solaris上运行它时,它运行得很流畅。当我在Windows上运行它时,GUI在加载过程中卡住,所以我只能看到一些按钮,或者GUI根本不显示—它似乎卡住了。perl进程使用了​​50000K的内存和100%的CPU使用率。但是当我关闭一些按钮/菜单并再次运行时—没问题。看来,Perl-Tk没有获得足够的内存来在Windows上加载GUI。有什么办法可以让它正常运行吗?是否有任何特殊的配置、标志来告诉windows给Perl-TK一些更多

windows - Perl Windows IPv6

我有一个使用TCP/IP套接字的Perl/Windows应用程序,我需要添加IPv6支持。我有一台运行IPv6的Windows764位机器,带有HurricaneElectric隧道,它在http://test-ipv6.com/上获得10分(满分10分)并将访问仅支持IPv6的站点,例如http://loopsofzen.co.uk/.它有ActivePerl5.14.2(我也试过StrawberryPerl5.16.0.1)。这是一个简单的测试脚本:useSocketqw(getaddrinfo);$host='loopsofzen.co.uk';$port=80;$hints=(

windows - Windows 上带有 perl 的 IPv6 无法正常工作

交叉发布http://perlmonks.org/index.pl?node_id=984750(可能与perlwindowsIPv6重复)我尝试了以下示例示例:https://metacpan.org/module/IO::Socket::IPuseIO::Socket::IP-register;my$sock=IO::Socket->new(Domain=>PF_INET6,LocalHost=>"::1",Listen=>1,)ordie"Cannotcreatesocket-$@\n";print"Createdasocketoftype".ref($sock)."\n";输出

windows - Windows 与 Linux/UNIX 中 Perl 的 waitpid() 和 IPC::Open2

下面的代码在Linux上运行完美,但是当我把它放在Windows机器上时,一切都乱套了:$pid=open2($my_reader,$my_writer,"$JAVACALL$PARSER_CP$PARSER_CMD-");$my_reader->autoflush(1);$my_writer->autoflush(1);print$my_writer"$line\n";close($my_writer);my$tree=;chomp($tree);push@parse_trees,$tree;close($my_reader);waitpid($pid,0);在Windows中,它只