سؤال

لقد ألقيت نظرة على مصدر تسرع في الشراب وأحب أن أفهم كيف يفعل slurp() الشغل:

sub slurp { 
    local( $/, @ARGV ) = ( wantarray ? $/ : undef, @_ ); 
    return <ARGV>;
}

أين يتم فتح الملف؟

هل كانت مفيدة؟

المحلول

نصائح أخرى

ARGV هو مقبض ، تم فتح الملف ضمنيًا.

يضع هذا المقتطف اسم الملف في @ARGV. ال ARGV يفتح FileHandle ضمنيًا الملفات التي تراها @ARGV. هذا هو نفس FileHandle الذي لا نراه في مشغل الماس <> نظرًا لأنه FileHandle الافتراضي لهذا المشغل.

هذا هو نفس تعبير بيرل مثل:

 my $data = do { local( @ARGV, $/ ) = $file; <> };
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top