免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1917 | 回复: 7
打印 上一主题 下一主题

请教!下面的内部变量$_[0] 是指代哪个变量 以及关于这个表示方法介绍 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-22 14:59 |只看该作者 |倒序浏览
我在程序看网络上的一个URI::BOOKMARKS的测试程序时候对一内部变量有一点不明白  首先我就这个用法查了相当多的文档以及书籍 该程序部分如下
#!/usr/bin/perl -w

use strict;
use Test;

BEGIN { plan tests => (3 + (3 * 15)) }

use URI::Bookmarks;

my $sample_file = 't/sample.bookmarks';

my @bookmarks = ();


unless (open(LETTER, $sample_file)) {
  die "Failed to open sample.bookmarks: $!\n";
}
my @lines = <LETTER>;

print "Testing new(array => ...) constructor ...\n";
$bookmarks[0] = new URI::Bookmarks(array => \@lines);
ok($bookmarks[0] ? 1 : 0);

print "Testing new(file => ...) constructor ...\n";
$bookmarks[1] = new URI::Bookmarks(file => $sample_file);
ok($bookmarks[1] ? 1 : 0);

print "Testing new(handle => ...) constructor ...\n";
seek(LETTER, 0, 0);
$bookmarks[2] = new URI::Bookmarks(handle => \*LETTER);
ok($bookmarks[2] ? 1 : 0);

close(LETTER);


print "Testing title() ...\n";
multi_test(sub {
            ok($bookmarks[$_[0]]->title,
                  'Bookmarks for Adam Spiers (title)');
});

我想问的就是 关于这个$_[0] 在上面具体指哪个变量 小弟对这门还是一个初学者 希望有经验的大大们 指点一下

[ 本帖最后由 angling2005 于 2006-8-22 15:46 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-22 15:02 |只看该作者

补充一下 忘记一个 自定义函数 其中 multi_test 如下

sub multi_test {
  my ($code) = @_;

  foreach my $i (0 .. 2) {
    &$code($i);
  }
}

论坛徽章:
0
3 [报告]
发表于 2006-08-22 17:26 |只看该作者
ok($bookmarks[0] ? 1 : 0);
请教这里的ok是个函数吗?没见过阿。

论坛徽章:
0
4 [报告]
发表于 2006-08-22 17:40 |只看该作者

恩 这里的 OK是一个 对象的方法 是 Test 包里面的一个方法

要谢谢大家了  虽然没人回复  但是有这么多人浏览过 还有我搞懂了 那个变量代表什么了 代表 0  1  2  这三个在multi_test  中遍历过的三个变量

论坛徽章:
0
5 [报告]
发表于 2006-08-22 17:42 |只看该作者

想问的是

谁有关于这方面的 文档 有谁见过 我在CPAN上查不到 这种用法的说明

论坛徽章:
0
6 [报告]
发表于 2006-08-22 18:14 |只看该作者

虽然知道代表什么

真心请教关于$_[0] 以及@_[0,1] 这类用法的一个文档方面的说明 迷惑中。。。

论坛徽章:
0
7 [报告]
发表于 2006-08-22 19:16 |只看该作者
原帖由 angling2005 于 2006-8-22 18:14 发表
真心请教关于$_[0] 以及@_[0,1] 这类用法的一个文档方面的说明 迷惑中。。。


$_[0]就是@_这个数组的第一个元素;@_[0,1]代表($_[0],$_[1]),是perl里列表的一种写法。
@_存储了调用者传递给子函数的参数列表。

论坛徽章:
0
8 [报告]
发表于 2006-08-23 08:48 |只看该作者
谢谢 仙子
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP