我知道他们都做了什么,但从来没有发现自己处于我需要的任何一个状态.我曾BEGIN
多次使用过块,偶尔使用过块END
.BEGIN
当您需要在代码运行之前调整环境时,它特别有用,并且我已经END
在某些调试情况下用于捕获重要的状态信息,以便难以跟踪致命错误.
你曾经使用过CHECK
,UNITCHECK
或者INIT
?如果是这样,那该怎么办?并且BEGIN
由于某种原因,一块块还不够用吗?
块的文档在PerlDoc上.
我是Windows平台上的Delphi开发人员,最近在W3CSchools阅读了PHP教程,看起来很有趣.
我们都知道脚本语言非常擅长网站开发,但我也想利用它来提高我的工作效率或快速完成一些繁琐的任务,也许是一些快速而肮脏的字符串/文件处理?
除了软件开发之外,您通常使用脚本语言做什么?我们需要一个响应迅速,体面的IDE /编辑器,以便在为此目的编写脚本时提高工作效率?
什么是可靠地使用"isa()"的"最佳"方式?换句话说,它可以在任何值上正确工作,而不仅仅是一个对象.
"最佳",我的意思是缺乏未处理的角落案例以及缺乏潜在的性能问题,因此这不是一个主观问题.
这个问题提到了两种似乎可靠的方法(请注意,UNIVERSAL::isa()
不应该使用旧式,并且在Q的答案中有充分记录的原因):
eval { $x->isa("Class") }
#and check $@ in case $x was not an object, in case $x was not an object
use Scalar::Util 'blessed';
blessed $x && $x ->isa($class);
Run Code Online (Sandbox Code Playgroud)
第一个使用eval
,第二个使用B::
(至少对于Scalar :: Util的非XS风味).
如果$x
是包含类名的标量,第一个似乎不能正常工作,如下图所示,所以我倾向于#2(使用blessed
),除非somoene指出一个很好的理由不这样做.
$ perl5.8 -e '{use IO::Handle;$x="IO::Handle";
eval {$is = $x->isa("IO::Handle")}; print "$is:$@\n";}'
1:
Run Code Online (Sandbox Code Playgroud)
有没有客观的理由选择这两种方法中的一种(或者我不知道的第三种方法),如性能,不处理某些特殊情况等等?
我看过提及(这听起来像未经证实的意见,以及那些过时的意见),Embperl是最快的Perl Web框架.
我想知道是否对主要稳定的Perl Web框架的相对速度达成共识,或者理想情况下,在相同示例Web应用程序的实现或单个功能(例如会话处理或表单数据处理)之间进行某种基于事实的性能比较等等......?
更新:这个问题具体是关于不同框架的速度比较,执行相同/等效的任务.我很欣赏良好的意图,但我已经知道速度并不是我应该关注的唯一标准.我没有要求提供哲学建议.不管你信不信,作为框架,你实际上可以通过在它们上运行相同目的的任务/代码/应用来比较它们在苹果到苹果的基础上的速度(例如,使用给定的一组模板化插入来呈现给定的形式等等. .),即使每个框架的完整功能不是100%相同.
我正在考虑在我的Windows桌面上执行一些任务自动化(例如,对大量音乐/文本/照片文件进行分类等).
看看我的主要开发人员专业领域是如何在Unix上使用Perl,我更倾向于坚持使用Perl来编写我需要做的任何业务逻辑,只是为了提高开发效率.
问题是,如果我想在工作之上打一些GUI(在Unix上的ala Perl :: Tk),我的GUI工具包选项是什么,你建议使用哪一个?
请注意,我希望这个问题对其他SO用户来说是一个很好的学习机会,所以我欢迎任何答案,即使他们不一定满足我下面列出的限制/需求,尽管说明你的解决方案如何关联这些考虑因素将非常受欢迎.
我的考虑主要是因为我想要一个快速开发的个人用工具,以节省我现在手动执行的任务的时间.
主要的考虑因素是Perlishness of development - Perl的口号是"轻松的事情应该是容易的,而且应该是可能的事情".特别是第一部分:)
就所使用的组件而言,更喜欢(但不是坚持)尽可能本地化.例如,重新使用Windows的文件打开对话框,而不是使用一些自定义Java对话框.
我更喜欢使用一些学习曲线较小的东西(例如,不需要学习OLE/COM的复杂性),因为这里的目标是快速开发我需要简化生活的工具而不是开发人员教育,我专注于与我的日常工作更相关的领域:).
但是我非常希望在这样做时能够接触到新的/酷的东西,例如,如果建议使用一些基于Monad的GUI组件,我肯定很好奇.
性能很重要(例如,我可能需要显示> 10000个文件的目录列表),但不是最重要的 - 我是一个非常好的GUI设计人员和开发人员,可以随时构建我的应用程序并设计一个GUI,以便在需要时进行扩展. .
我强烈希望(尽管不是坚持)一个不强迫我编译东西的框架.例如,Perl库比我需要编译的自定义Java东西更可取.但是如果框架在所有其他方面都是完美的,那么我就可以使用已编译的解决方案(只要它不需要我购买Visual Studio或其他类似的东西 - 我想构建一个Windows GUI前端供个人使用,不投资成为Windows开发人员).
除了上述限制之外,我非常开放和灵活.一些ActivePerl/Strawberry Perl库,基于MS PowerShell的组件 - 哎呀,如果没有更好的表现我会在我的PC上安装Apache并构建一个Web前端:)
如果我的Perl程序使用Perl模块,它将如何确定在哪里找到包含模块代码的文件?
例如,如果程序包含:
use MyModule1; # Example 1
use This::Here::MyModule2; # Example 2
Run Code Online (Sandbox Code Playgroud)
它会在哪里看?
我在进行Perl编码时遇到的一个小烦恼就是必须记住选择从输入中读取的行.是的,经过多年的编码,它几乎是自动记住这样做,但仍然很烦人.
Perl中是否存在任何编译指示,模块或其他任何内容(强烈优选的核心模块),它们会自动选择使用<>
运算符读取的每一行?
我知道ALGOL语言作为一种理论语言非常重要,并且根据维基百科也有各种各样的实现.
然而,目前尚不清楚的是,ALGOL(纯ALGOL,不是像Simula这样的衍生品)曾经以任何方式实际用于任何"真正的"编程吗?
通过"真实",我的意思是用于除编程语言/ CS研究之外的几个大型项目,或者用于大量开发人员(比如> 1000).
就个人而言,我曾经做过的唯一一个ALGOL编程就是纸上谈兵,因而是好奇心.
在Windows中,是否有一种简单的方法(即您可以在单个命令行上键入的内容)只播放几个.mp3文件然后自行退出?
例如,wmplayer似乎在完成后似乎没有退出,迫使用户抓住它并每次点击它关闭它.(wmplayer 11似乎也奇怪地重复一些文件,如果你传递一个列表.)(旧的(1990年代)版本的'mplayer'用于支持'/ close'命令行选项,但它似乎不起作用wmplayer 11.)
我更喜欢使用每个人都会在他们的机器上拥有的东西(比如wmplayer,quicktime ......)
对于使用HTML4并计划使用HTML5的人来说,是否有任何理由考虑与Web开发相关的XHTML相关细节?
或者XHTML是Web技术的"侧面"开发,与当前的Web开发主流(我猜是HTML5)无关?
要求的理由
我问的原因是我之前发布的StackOverflow答案最近被评论为"你不应该使用大写HTML标签".当我问"为什么"时,评论者向我指了几篇文章,这两篇文章都给出了仅小写标签名称的推理,因为" XHTML中不允许使用大写标签名称 "作为主要原因.
由于我目前不在XHTML(纯HTML4.0)中进行Web开发,并且只计划使用HTML5作为下一步,我感兴趣的是XHTML是否应该成为我在Web开发中做出的各种决策的一个因素
请注意,这个问题并不是要问一个人是否应该在纯HTML中使用大写或小写标签名称 - 仅仅是XHTML中的大写标签禁止应该是我决策中的一个因素,或者我应该忽略XHTML相关规则.
perl ×7
windows ×2
algol ×1
audio ×1
batch-file ×1
catalyst ×1
command-line ×1
compilation ×1
embperl ×1
html ×1
html5 ×1
include ×1
input ×1
isa ×1
mp3 ×1
path ×1
performance ×1
perl-module ×1
php ×1
python ×1
ruby ×1
scripting ×1
xhtml ×1