Trong Perl, bạn có thể có được một danh sách các tập tin phù hợp với một mẫu:Làm thế nào tôi có thể sử dụng giá trị của một biến như là một mẫu glob trong Perl?
my @list = <*.txt>;
print "@list";
Bây giờ, tôi muốn vượt qua mô hình như là một biến (vì nó được thông qua vào một chức năng). Nhưng điều đó không hoạt động:
sub ProcessFiles {
my ($pattern) = @_;
my @list = <$pattern>;
print "@list";
}
readline() on unopened filehandle at ...
Mọi đề xuất?
Không bao giờ, bao giờ, bao giờ, bao giờ làm điều này . Toán tử 'glob' là câu trả lời đúng. – friedo
Bạn nói đúng, glob là một câu trả lời tốt hơn nhiều. Cảm ơn vì sự đúng đắn của bạn. Tại sao "không bao giờ, bao giờ, bao giờ, bao giờ" làm điều này? –
Robert, bạn nên tránh chuỗi 'eval' bất cứ khi nào có thể; ai biết được dữ liệu bất chính nào có thể kết thúc bằng '$ pattern', đặc biệt nếu dữ liệu đó bắt nguồn từ đầu vào của người dùng. Ngay cả khi không độc hại, những thứ kỳ lạ tìm đường vào một 'eval' có thể là nguyên nhân gây ra nhiều lỗi đau đớn. – friedo