title image


Smiley Ich komm nicht drauf, Arrays und Scalare
Hi !

..vorne weg, ich bin nur ein kleiner Perl(er).

Ich sitzte seit Stunden an folgendem Problem, welches eigentlich keines sein dürfte (wenn man mehr Routine hat).

Ich filtere durch ein PostScript Datenstrom duch den Druckerfilter.

Im Dokument sind Informationen, wie er damit weiter umgehen soll, z. B. ###PDF### ->pdf erzeugen, ###MAIL###email@addr.dea### ls pdf mailen oder faxen.



Der Datenstrom, welcher durch das Script soll sieht dann etwa so aus :



###---schnipp

#237 282 M (###PDF###)[25 25 25 28 36 27 25 25 0]xS

#237 340 M (###FAX###04079999997###)[25 25 25 28 25 25 25 25 25 25 0]xS

#0.105 0 scol 237 397 M (###MAIL###tux4711@gmx.de###)[25 25 25 8 24 13 25 22 25 25 0]xS

#0.105 0 scol 237 455 M (###MAIL###olaf.krause@gmx.de###)[25 25 13 25 22 25 25 0]xS

#237 512 M (###FAX###099989899999999###)[25 25 25 28 35 36 25 25 25 25 0]xS

###---schnapp



Zum Test hab ich mal eine ps-Datei angelegt, welche er abackert.





#!/usr/bin/perl -w

$infile=("/tmp/pdf/volltreffer123.ps");

open ( PS, "$infile" ) or die "Kann $infile nicht oeffnen\n";

while ( )

{

($pdf) = $_ =~ m/(###PDF###)/;

($fax, $faxnr) = $_ =~ m/(FAX)###(\d{5,})/;

($mail, $mailadr) = $_ =~ m/(MAIL)###(\.{5,})/;



$pdfcmd "ps2pdf /var/spool/lpd/ps2pdf/spool.tmp /data/pdf/$$.ausgabe.pdf";

$faxcmd "sendfax -d NUMMER $faxnr usw";

$mailcmd "

(

}

close ( PS );

system($faxcmd);

system($pdfcmd);

system($mailcmd);



Unklarheiten:

1.) Ist der Ansatz Mist oder geht das eleganter.

2.) Ich hab das auch mal mit einem Array und einem Split auf das # Zeichen versucht, jedoch kann -zumindest ich nicht- das 2.te Array (faxnr|mailadr) ansprechen, da ich nicht weiss, wie man das 0-te Element auf FAX bzw. MAIL fixieren kann, damit $array[1] dann die Faxnummer wäre.

3.) Bin für alle Tipps SEHR dankbar, weil ich mittlerweile es nicht mehr aus Distanz betrachten kann. (Bretter,Bretter,Bretter..)

cu.

tux4711





geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: