【问题标题】:Error running Learn Perl (learn.perl.org) example for reading a directory运行 Learn Perl (learn.perl.org) 示例以读取目录时出错
【发布时间】:2017-10-15 04:34:09
【问题描述】:

learn.perl.org 有 reading the contents of a directory 的示例代码:

#!/usr/bin/perl
use strict;
use warnings;

use Path::Tiny;

my $dir = path('foo','bar'); # foo/bar

# Iterate over the content of foo/bar
my $iter = $dir->iterator;
while (my $file = $iter->next) {

    # See if it is a directory and skip
    next if $file->is_dir();

    # Print out the file name and path
    print "$file\n";
}

使用 Perl 5.18.2 和 Path::Tiny of DAGOLDEN/Path-Tiny-0.104.tar.gz 运行它,我得到一个错误:

无法在 read_directory.pl 的 unblessed 引用上调用方法“next” 第 11 行。

【问题讨论】:

    标签: perl


    【解决方案1】:

    是的,你是对的。似乎这个例子在最近几天被更改为使用 Path::Tiny 并且这个错误在那个时候溜进来了。

    我已经提交了一个拉取请求来修复它。

    https://github.com/perlorg/perlweb/pull/233

    【讨论】:

      【解决方案2】:

      在 learn.perl.org 示例中看起来像一个简单的错误:Path::Tiny docs 中的示例是正确的。迭代器是一个函数,而不是一个对象;它使用$iter->() 生成值,而不是
      $iter->next

      【讨论】:

        猜你喜欢
        • 2015-08-25
        • 2016-02-27
        • 2012-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多