2011-12-23 37 views
5

Tôi đang cố gắng tạo tập lệnh sẽ đọc tệp văn bản và sau đó phân tích chúng, bất kể tệp văn bản có trực tuyến hay ngoại tuyến.Perl: Đọc tệp văn bản web và "mở" nó

Các ẩn phần được thực hiện, sử dụng

Đây là phần trực tuyến, là có anyway để đọc một file văn bản trên một trang web và sau đó "mở" nó?

gì tôi hy vọng sẽ đạt được điều này là:

if ($offline) { 
    open(FILENAME, "anyfilename.txt") 
} 
elsif ($online) { 
    ##somehow open the http web text so that I can do a while (<FILENAME>) later 
} 

analyze_file(); 

sub analyze_file { 
    while (<FILENAME>) {analyze analyze} 
} 

Có là "get ('http://weblink.com/textfile.txt;)" nhưng nó tạo ra một chuỗi. Tôi không thể làm một lúc() với chuỗi đó.

Có ai biết cách thực hiện điều này không?

Trả lời

11

Thật đơn giản, chỉ cần sử dụng kiểu open FILEHANDLE,MODE,REFERENCE của open.

use LWP::Simple; 
if ($offline) { 
    open(FILENAME, '<', "anyfilename.txt") 
} 
elsif ($online) { 
    my $text = get 'http://example.com'; 
    open(FILENAME, '<', \$text); 
} 
+0

+1, đây có lẽ là cách phù hợp để thực hiện. Nhưng tùy thuộc vào dịp này, mở một tập tin xử lý để một vô hướng dường như nhiều cho tôi và tôi chỉ muốn sử dụng giải pháp đề xuất của tôi chia tách vô hướng thành một loạt các dòng. – sidyll

+0

@sidyll Tại sao mở một tập tin xử lý cho một vô hướng là quá nhiều? BradGilbert Cảm ơn bạn !! –

+0

@ Brad-Gilbert Dấu gạch chéo thực sự làm gì trong bối cảnh \ $ này? Bình thường nếu vô hiệu hóa bất cứ điều gì đến sau nó. Tại sao mã hoạt động vì văn bản $ in bị hủy? –

Các vấn đề liên quan