小编Mic*_*man的帖子

如何监控Perl调用堆栈?

我在Windows XP上使用ActivePerl 5.8.

use strict;
use warnings;
use Data::Dumper;
Run Code Online (Sandbox Code Playgroud)

我的脚本中使用了三个子例程.

要检测调用堆栈,我只能插入一些print "some location";并从控制台窗口检查打印结果.

有什么好方法可以监控它吗?谢谢.

perl callstack

5
推荐指数
3
解决办法
2102
查看次数

如何有条件地使警告致命?

我希望根据用户的偏好,致命错误可以降级为警告(或者相反,警告可以升级为致命错误)。目前,我正在die像这样使用和覆盖它:

my $force;
BEGIN {
    no warnings 'once';
    Getopt::Long::Configure('pass_through');
    GetOptions('force', \$force);
    *CORE::GLOBAL::die = sub { warn @_ } if $force;
    Getopt::Long::Configure('no_pass_through');
}

use My::Module;
...
die "maybe";
...
exit(1) if $force;
exit(0); # success!
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种方法,主要是因为有几个地方我仍然想死(例如缺少命令行参数)。我宁愿更改(大多数)实例dietowarn并执行条件use warnings FATAL => 'all'1。问题是它use warnings是词法范围的,所以这是无效的:

if (!$force) {
    use warnings FATAL => 'all';
}
Run Code Online (Sandbox Code Playgroud)

尝试使用后缀条件是一个语法错误:

use warnings FATAL => 'all' unless $force;
Run Code Online (Sandbox Code Playgroud)

并且use不能在表达式中使用:

$force or use warnings FATAL => 'all';  # syntax …
Run Code Online (Sandbox Code Playgroud)

perl

4
推荐指数
1
解决办法
251
查看次数

尝试从使用tkx(Tcl/tk)的Perl脚本创建独立应用程序

以下是我的规格:OS X Tiger Perl 5.8使用捆绑了ActiveTcl v8.5的Tkx

我已经使用PAR/pp成功创建了具有上述配置的独立应用程序,但它不是一个完全令人满意的解决方案:

  • 仍然需要安装Tcl/Tk
  • 在带有默认菜单的Tcl/Tk窗口中打开
  • 每次运行应用程序时都会打开终端

是否有其他途径可以绕过这些问题?

perl par tkx

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

stat()报告的上次修改时间根据夏令时变化

我的文件的最后修改时间改变了3600秒(一小时),具体取决于我系统的夏令时设置.statmtime的状态文档是从纪元开始以秒为单位测量的.因此,mtime不应该依赖于DST.

这导致我的应用程序在不应该检测/报告文件时将其视为不同.

windows perl

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

SELECT查询失败,并显示ORA-01722(无效数字)有效数字

我有一个表,其中包含配置选项。这些值存储为字符串,但可以表示不同类型的数据。该TYPE列标识值的数据类型。(STRING,INTEGER,FLOAT或BOOLEAN中的一种)。

CREATE TABLE CONFIG (
    NAME  VARCHAR2(256) NOT NULL,
    TYPE  VARCHAR2(20)  NOT NULL,
    VALUE VARCHAR2(1024)
)
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行包含数字比较的查询,例如

SELECT NAME, VALUE FROM CONFIG
WHERE TYPE = 'INTEGER' AND to_number(VALUE) > 100
Run Code Online (Sandbox Code Playgroud)

但我的查询失败,并显示“ ORA-01722:无效编号”。这些值(对于INTEGER类型的记录)均不包含无效字符。为什么会出现“无效数字”错误,我该如何解决查询问题?

sql oracle

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

标签 统计

perl ×4

callstack ×1

oracle ×1

par ×1

sql ×1

tkx ×1

windows ×1