linux-l: Perl mal wieder...

Oliver Bandel oliver at first.in-berlin.de
Mi Feb 9 02:18:58 CET 2000


Hi!

On Tue, 8 Feb 2000, Carsten Wartmann wrote:

> Oliver Bandel writes:
>  > Hi!
>  > 
>  > On Mon, 7 Feb 2000, Carsten Wartmann wrote:
>  > 
>  > > Hi,
>  > > 
>  > > ich kann Perl immer noch nicht so richtig leiden,
>  > 
>  > Wird sich bestimmt bald ändern... ...hoffe ich jedenfalls,
>  > ist nämlich richtig schnuckelig. :-)
> 
> Buch? Hab bald Geburtstag...

Was willst Du denn in Buch? ;-)

Spaß bei Seide ;-)  ===> Kamel-Buch, mit anderen Worten:

   Larry Wall, Tom Christiansen, Randal E. Schwartz: Programming Perl

Sollte bei Lehmanns zu bekommen sein. Laut Auskunft von Mr. Sommerfeld,
das am häufigsten verkaufte Buch der EDV-Abteilung. :-)


> 
>  > $alt = 'layout.inc';
> 
> Und dann ist der Inhalt von layout.inc in der Variablen? Da wundert
> sich einer dass ich Perl nicht verstehe....

Nicht der Inhalt von layout.inc ist in der Variablen, sondern die
Variable enthält dann den Text "layout.inc".

Erinnert Dich die Syntax "s/$alt/$neu/"  nicht irgendwie an sed?
Das ist ja das feine bei Perl: Was man so aus dem Unix-Umfeld her
kennt kann man in Perl weiter benutzen.
Mit anderen Worten: Man spart eigentlich viel Lernzeit, wenn man
sich mit der Unixerei schon ein bischen auskennt. Und das dürfte
doch bei Dir zutreffen (bitte keine Understatements...).


> 
> Ich suche dann nach OPen, Read oder so.
> 
>  >   print;
> 
> Wie printe ich in eine Datei????

Ach so, das auch noch?

"man perlfunc" gibt Dir die in Perl zur Verfügung stehenden Funktionen
aus. Perl hat auch eine eigene Doku (perldoc).
Probier's doch mal mit  "perldoc -f open".

Mini-Beispiel:


------
#!/usr/bin/perl

# Kopiere ein File nach stdout und in eine Datei.
# Ungetestet; sollte aber funktionieren, obwohl es
# schon: Wed Feb  9 02:10:54 MET 2000 ist... schnarch

open(MYFILEHANDLE, "datei_soundso") or die "Konnte Datei nicht öffnen!";
open(MYCOPY, ">datei_soundso.bak") or die "Konnte Kopie nicht schreiben!";

while(<MYFILEHANDLE>)
{
  print;
  print MYCOPY;
}

close(MYCOPY);
close(MYFILEHANDLE);

-----


So, das war jetzt aber genug Privatunterricht.
Das Büchlein sollte helfen; gibts vermutlich auch auf deutsch.

> 
>  > Man kann mit Perl auch, wenn man's drauf anlegt, direkt in der einen
>  > Datei Ändern und dann auch automatisch ein Backup-File anlegen lassen.
>  > 
>  > => man perlrun 
>  >    (Option "-i")
> 
> Wie gesagt das ist so ein embeded Perl für WML.

??? WML? schon mal von gehört.

> 
>  > P.S.: Man könnte die Performance des obigen Scriptes sicherlich
>  >       noch erhöhen, wenn man die Substitution nur einmal ausführt,
> 
> Performance ist egal.

OK:  baue in die Schleife ein "sleep 5;" ein.
Dann ist wirklich alles egal. ;-)

Tschüß,
   Oliver



Mehr Informationen über die Mailingliste linux-l