SORU
5 HAZİRAN 2009, Cuma


Perl, nasıl bir dizeye tüm dosyayı okuyabilir miyim?

Bir açmak için çalışıyorum .büyük bir uzun dize olarak html dosyası. Bu ne buldum

open(FILE, 'index.html') or die "Can't read file 'filename' [$!]\n";  
$document = <FILE>; 
close (FILE);  
print $document;

sonuçları:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN

Ancak, sonuç gibi görünmek istiyorum:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Bu şekilde tüm belgeyi daha kolay arama yapabilirsiniz.

CEVAP
5 HAZİRAN 2009, Cuma


Bu şekilde yapardım:

my $file = "index.html";
my $document = do {
    local $/ = undef;
    open my $fh, "<", $file
        or die "could not open $file: $!";
    <$fh>;
};

Açık üç bağımsız sürüm kullanmayı unutmayın. Eskisine oranla çok daha güvenli iki (veya tek) değişken sürümleri. Ayrıca not, sözlü bir filehandle. Sözlü filehandles eski bareword türevleri daha güzel, birçok nedenden dolayı. Onlardan biri de burada istifade ediyoruz: kapsam. dışarı çıktıklarında kapatıyorlar

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 10 Daughters, 2 Sons

    10 Daughters

    10 Mart 2009
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012
  • The Onion

    The Onion

    14 Mart 2006