问题标签 [perl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
11988 浏览

perl - 在 shell / Perl 脚本中保存密码的最佳实践?

我最近不得不重新学习我的 Perl 和 shell 脚本技能来帮助一些同事。有问题的同事的任务是提供来自具有大型 Oracle 数据库后端的内部应用程序的一些报告,但他们根本不具备执行此操作的技能。虽然有些人可能会质疑我是否也有这些技能(咧嘴笑),但显然有足够多的人认为我这样做意味着我无法摆脱它。

所以对于我的问题 - 为了从数据库中提取报告,我的脚本显然必须连接并运行查询。到目前为止,我还没有想出一个好的解决方案来存储数据库的用户名和密码,因此它目前在脚本中以纯文本形式存储。

有没有其他人已经写过的很好的解决方案,也许是一个 CPAN 模块?或者还有其他更好的方法 - 比如将用户/密码组合保存在一个完全独立的文件中,该文件隐藏在文件系统的其他地方?或者我应该对它们进行简单的加密,以避免使用系统范围的 grep 将它们从我的脚本中拉出来?

编辑:Oracle 数据库位于 HP-UX 服务器上。
应用程序服务器(运行 shell 脚本)是 Solaris。
将脚本设置为仅由我拥有是不行的,它们必须由多个支持人员可以访问的服务帐户拥有。
这些脚本旨在作为 cron 作业运行。
我很想使用公钥身份验证,但我不知道使用 Oracle 进行验证的方法——如果有这样的方法——请赐教!

0 投票
5 回答
226 浏览

perl - perldoc perlxxx 选项是什么?

似乎使用 perldoc perl 给出了例如 perlre、perlvar 等的列表。

这是查找概述或教程或参考手册部分可用内容列表的最佳位置吗?还有其他更好的清单吗?

0 投票
35 回答
32240 浏览

c# - 如果公司使用 C++、C# 或 Java 作为应用程序语言,为什么要学习 Perl、Python、Ruby?

我想知道为什么 C++、C#、Java 开发人员想要学习动态语言?

假设公司不会将其主要开发语言从 C++/C#/Java 切换到动态语言,那么动态语言有什么用?

与使用了几年的静态语言相比,动态语言在学习几天后可以更快或更好地完成哪些辅助任务?

更新

在看到最初的几个回复后,很明显有两个问题。我的主要兴趣是对雇主来说是合理的费用。也就是说,我正在寻找雇主资助学习动态语言的理由。除了员工将有更广阔的视野之外,雇主通常在寻找一些“真正的”好处。

0 投票
7 回答
1187 浏览

perl - How can I use perldoc to lookup the %ENV variable?

I find from reading perldoc perlvar, about a thousand lines in is help for %ENV. Is there a way to find that from the command line directly?

On my Windows machine, I've tried the following

None actually return information about the %ENV variable.

How do I use perldoc to find out about %ENV, if I don't want to have to eye-grep through thousands of line?

I've tried the suggested "perldoc perlvar" and then typing /%ENV, but nothing happens.

Though I've asked about %ENV, this also applies to any general term, so knowing that %ENV is in perlvar for this one example won't help me next time when I don't know which section.

Is there a way to get perldoc to dump everything (ugh) and I can grep the output?

0 投票
23 回答
195866 浏览

perl - 如何获取正在执行的 Perl 脚本的完整路径?

我有 Perl 脚本,需要在执行期间确定脚本的完整路径和文件名。我发现,根据您调用脚本的方式,脚本会有所不同,有时$0包含. 因为工作目录也可能会有所不同,所以我想不出一种可靠地获取脚本的方法。fullpath+filenamefilenamefullpath+filename

有人有解决方案吗?

0 投票
8 回答
29606 浏览

perl - perl中的反向DNS查找

如何执行反向 DNS 查找,即如何在 Perl 中将 IP 地址解析为其 DNS 主机名?

0 投票
3 回答
4303 浏览

perl - CGI.pm 通常在哪里创建临时文件?

在我所有的 Windows 服务器上,除了一台机器,当我执行以下代码来分配一个临时文件夹时:

变量$tmpfile被赋值'.\CGItemp1',这就是我想要的。但在我的一台服务器上,它被错误地设置为C:\temp\CGItemp1.

所有服务器都运行 Windows 2003 标准版、IIS6 和 ActivePerl 5.8.8.822(升级到更高版本的 Perl 不是一个选项)。从命令行或在 IIS 中作为 CGI 脚本(其中 scriptmap .pl= c:\perl\bin\perl.exe "%s" %s)运行脚本时,结果始终相同。

我如何修复这个 Perl 安装并强制它.\CGItemp1默认返回“”?

我什至将整个 Perl 文件夹从其中一台工作服务器复制到这台机器上,但没有任何乐趣。

@Hometoast:

我检查了 ' TMP' 和 ' TEMP' 环境变量,$ENV{TMP}并且$ENV{TEMP}它们是相同的。

从命令行它们指向用户配置文件目录,例如:

C:\DOCUME~1\[USERNAME]\LOCALS~1\Temp\1

当在 IIS 下作为 CGI 脚本运行时,它们都指向:

c:\windows\temp

在 registry keyHKEY_USERS/.DEFAULT/Environment中,两台服务器都有:

%USERPROFILE%\Local Settings\Temp

ActiveState 的实现CGITempFile()显然使用了一种替代机制来确定它应该如何生成临时文件夹。

@Ranguard:

真正的问题在于CGI.pm模块和附件处理。每当将文件上传到站点时,都CGI.pm需要将其临时存储在某个地方。为此,CGITempFile()在内部调用CGI.pm以分配一个临时文件夹。所以不幸的是我不能使用File::Temp. 不管怎么说,还是要谢谢你。

@克里斯:

这帮助了很多人。我之前确实快速浏览了CGI.pm源代码,但您的建议让我回过头来更加认真地查看它以了解底层算法。我得到了工作,但最奇怪的是服务器上最初没有c:\temp文件夹。

为了获得临时修复,我创建了一个c:\temp文件夹并为网站的匿名用户帐户设置了相关权限。但是因为这是一个共享框,所以即使临时文件正在被删除,我也不能那样做。长话短说,我将c:\temp文件夹重命名为不同的名称,并且神奇地返回了正确的 ' .\' 文件夹路径。我还注意到客户在网站上启用了 FrontPage 扩展,这会删除网站文件夹上匿名用户帐户的写入权限,因此需要重新申请此权限。我仍然不知道为什么在这个问题开始时CGITempFile()正在返回c:\temp,即使该文件夹不存在,以及为什么它神奇地再次开始工作。

0 投票
3 回答
1035 浏览

perl - 我可以让 Windows 中的 Perl ithreads 并发运行吗?

我有一个尝试使用 Perl 线程(使用线程)设置的 Perl 脚本。当我运行简单的测试时,一切正常,但是当我执行我的实际脚本(其中有运行多个 SQL Plus 会话的线程)时,每个 SQL Plus 会话按顺序运行(即线程 1 的 sqlplus 运行步骤 1-5,然后线程 2 的 sqlplus运行步骤 6-11 等)。

我以为我明白线程会进行并发处理,但有些不对劲。有什么想法,还是我应该做一些其他的 Perl 魔法?

0 投票
8 回答
2884 浏览

perl - 让 git-svn 在 Slackware 12.1 上工作

它显然是一些 Perl 扩展。Perl 版本是 5.8.8。

我找到了Error.pm,但现在我正在寻找Core.pm。

在我们讨论的时候:你们如何搜索这些模块。我尝试了谷歌,但这并没有太大帮助。谢谢。


最后,在我构建完所有内容之后,运行:

给我:

看起来 Slackware 的“ginstall”真的没有那个选项。我想我现在要去谷歌一点,看看如何解决这个问题。

0 投票
5 回答
43116 浏览

regex - 如何在 Perl 中找到正则表达式匹配的位置?

我需要编写一个接收字符串和正则表达式的函数。我需要检查是否有匹配并返回匹配的开始和结束位置。(正则表达式已由 编译qr//。)

该函数可能还会收到一个“全局”标志,然后我需要返回所有匹配项的 (start,end) 对。

我无法更改正则表达式,甚至不能()像用户可能使用的那样添加它()\1. 也许我可以使用(?:).

示例:给定“ababab”和正则表达式qr/ab/,在全局情况下,我需要取回 3 对(开始,结束)。