open(my $out: Frage nach Ausgabe einers Scripts: HowTo!?

Alles, was Perl betrifft, kann hier besprochen werden.

open(my $out: Frage nach Ausgabe einers Scripts: HowTo!?

Postby unleash » 31. March 2012 15:40

halli hallo liebe Linux-Freunde guten ABEND

wollte mich mal wieder melden...


hab eine Aufgabe - moechte von web-sites (2500) screenshots machen - brauche diese als Thumbnails...
Also ich habe ein Verzeichnis mit Urls - das nenne ich mal urls.txt soweit so gut.


Das sieht dann also so aus:


Code: Select all

    http://www.unifr.ch/sfm
    http://www.zug.phz.ch
    http://www.schwyz.phz.ch
    http://www.luzern.phz.ch
    http://www.schwyz.phz.ch
    http://www.phvs.ch
    http://www.phtg.ch
    http://www.phsg.ch
    http://www.phsh.ch
    http://www.phr.ch
    http://www.hepfr.ch/
    http://www.phbern.ch


Dazu hab ich folgenden Code - der läuft auch nicht schlecht!


Code: Select all
  #!/usr/bin/perl
  use strict;
  use warnings;
  use WWW::Mechanize::Firefox;
  my $mech = new WWW::Mechanize::Firefox();
  open my $urls, '<', 'urls.txt' or die $!;
  while (<$urls>) {
    chomp;
    next unless /^http/i;
    print "$_\n";
    $mech->get($_);
    my $png = $mech->content_as_png;
    my $name = $_;
    $name =~ s#^http://##i;
    $name =~ s#/##g;
    $name =~ s/\s+\z//;
    $name =~ s/\A\s+//;
    $name =~ s/^www\.//;
    $name .= ".png";
  open(my $out, '>', "/images/$name")or die $!;
  binmode $out;
    print $out $png;
    close $out;
    sleep 5;
  }





alles liegt in diesem Ordner drinne:
Code: Select all
/home/martin/perl


und jetzt kommt der Punkt - ich krieg das script nicht dazu das es in den Ordner images reinschreibt

Code: Select all
/home/martin/perl/images



- es macht immer alles aber nicht das was ich will.
M.a.W. es ist wie verhext - in den Ornder schreibts nicht rein. ABER ich glaube ich muss sowieso aufpassen - es kann nämlich auch sein, dass ich den Ordner
ggf. irgendwie falsch angelegt habe - mit systemrechten oder so. DAS kann dann ggf. dazu fuehren dass ich dann am Ende eines erreiche.
Dass ich Rechtprobleme bekomme und dann der Ordner nicht mehr beschrieben wird & werden kann.

Frage also - wie kann ich das denn umgehen - wie kan ich (jetzt an dieser Stelle) das Problem umgehen und das ganze so einrichten dass auf jeden FALL in
einen separaten Ordner geschrieben wird!?

Dazu koennte ich doch einen Ordner einrichten der ausserhalb lieght - ausserhalb von

Code: Select all
/home/martin/perl


Frage - wie müsste denn dann die Zeile aussehen - diese hier ...

Code: Select all
  open(my $out, '>', "/images/$name")or die $!;


Freu mich auf einen Tipp

viele Gruesse
unleash
 
Posts: 147
Joined: 03. December 2011 10:16
Operating System: OpenSuse Linux 12.1

Return to Perl

Who is online

Users browsing this forum: No registered users and 8 guests