perl use(perl如何调用其他的perl文件)

本文目录
- perl如何调用其他的perl文件
- perl 问题
- perl语言use warning命令和-w有什么区别
- perl use uninitialized value, 求救啊! 之前运行Ok的, 不影响结果但多出来很多这样语句
- 在Perl中Require 和 use 的区别
- perl引入module模块use Win32 报错Unrecognized character
perl如何调用其他的perl文件
可以使用两种方法:
1.require "xxx.pl";
2.use xxx.pm;
加入require或者use在perl中相当于将文件xxx.pl/pm整个文件都添加到调用它的文件中;
例如:
gettime.pl
#!/usr/bin/perl
print "gettime is 2011-07-25 14:40:10\n";
showtime.pl
#!/usr/bin/perl
require "gettime.pl";
print "get time ok\n";
则执行showtime.pl会显示:
gettime is 2011-07-25 14:40:10
get time ok
perl 问题
qw的作用是将列表内一些东西省略掉,(strftime)如果不用qw,就应该写成(’strftime’).其具体用法:一个列表例如(’a’,’b’,’c’,’d’),因为其中的单引号(’)啊逗号(,)啊写起来麻烦,如果列表很长的话就更麻烦了,所以perl引进了qw,这个列表就可以这么写了qw(a b c d),而strftime应该是你用的某个模块的名称之类的
perl语言use warning命令和-w有什么区别
楼主, 请看清楚,Perl中没有use warning,而是use warnings;
你少了一个s吧。
一楼和二楼的都是错误的,如果不是对这个十分了解,请不要随便回答以免误导新人!
虽然它们大体上是同样的功能,但是标记范围不一样。
请查阅Perl帮助文档,里面是这样说的:
The warnings pragma is a replacement for the command line flag -w, but the pragma is limited to the enclosing block, while the flag is global.
换句话说,use warnings是当前包含的语句块有效,
use warnings;后面如果再用no warnings, 则可关闭一些不安全语法检查,而-w是全局的。
perl use uninitialized value, 求救啊! 之前运行Ok的, 不影响结果但多出来很多这样语句
1) 定义 $column 的时候,把字串写错了。
For example: ----------
$list-》{col1} = 1
$list-》{col2} = 2
$list-》{col3} = 3
$list-》{col4} = 4
$list-》{col5} = 5
$column = "col1"
$column = "xol2"
$column = "xol3"
$column = "xol4"
$column = "xol5"
----------------------------
2) 定义 $list 的时候,hash key 没有正确的定义。
$list-》{xol2} = 2
$list-》{xol3} = 3
等等。
解决方法:
在for前一行写上如下两行。然后实行一下,再看看error log file。
#use Data::Dumper;
warn Dumper $list; #$list的第一个要素肯定存在。
warn Dumper @column;
die;
你看看list中的 hash key 和 @column 中定义的 key 是否相同。
回避方法:
把有可能出错的地方都实行一下 if defined 。
if( defined $list} ) {
( $PN , ) = split( / / , $list} );
}
在Perl中Require 和 use 的区别
最简单的理解就是..
use 是在 compile time (编译时) 便会处理, 而 require 则在 runtime (跑到那一行) 才处理.
use 在失败时会立即报错并挂掉, require 失败时会无声无息的略过. 所以很多情况下 require 的指令会写成 eval {require Foo::Bar}; die "$@" if ( $@ );
use 的必须是模块(package / .pm), require 就不一定是模块, 可以 require 另一个 perl script, 使之变成 main的一部份
use 的模块必须出现在 @INC 所定义的范围, require 无所谓, 如果 require 的东西不在 @INC 里, 写出绝对或相对路径也可, 如: require "C:/MyPerlStuff/xyz.pm"; require "../MyPerlStuff/abc.pl";
注1: @INC 是一个 Perl 的特殊数组, 里面装著所有会出现模块的目录, 如 print "@INC" 就会看到了. 有时我们想让 Perl 加入我们自己定义位置去找模块时, 可以写: push @INC, "C:/MyPerlModules/";
perl引入module模块use Win32 报错Unrecognized character
这种一般是因为从网站上复制代码引起的,非法字符,比如全角符号,或者不可见的特殊符号。解决方法也很简单,把那一行删了,手工重新打一遍就可以了。

更多文章:
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40
下载mysql的步骤(win10安装mysql的步骤和方法)
2026年9月7日 04:10







