[LUGOS] Obdelovanje dn v perlu-dodatek

Andrej Kastrin andrej.kastrin at siol.net
Thu Jul 6 09:31:16 CEST 2006


matjaz.demsar na lj-mlek.si wrote:
>
> Prehitro sem poslal prejšnje sporočilo, se opravičujem
>
> Tole je skripta:
>
> #!/usr/bin/perl -w
> use DBI;
>
> $dbh = DBI->connect('DBI:mysql:lmprint;host=myhost', 'myuser', 
> 'mypass', { RaiseError =>1 });
>
> open(F1,"/tmp/test.csv");
>        while($line = <F1>) {
>                if ($line =~ /^(\S+)\.\S+\,(\d+)\,(\d+)\,(\d+)\.\d+/) {
>                $insert = "INSERT INTO report_current_month(printer, 
> jobs, pages, cost) VALUES('$1','$2','$3','$4')";
>                $sth = $dbh->prepare($insert);
>                $sth->execute;
>                }
> }
> close(F1);
>
> Težava je v obliki podatkov. Ti so zapisani v obliki
>
> TALLY_T6180_VRS.Skladisca.Logistika.Trzenje.Ljubljana.LM,3,17,126
>
> Za obdelavo potrebujem samo ime tiskalnika, torej TALLY_T6180_VRS, v 
> bazo pa skripta vpiše 
> "TALLY_T6180_VRS.Skladisca.Logistika.Trzenje.Ljubljana". To je 
> logično, ker perl dela v "greedy" načinu in pobere čim več do zadnje 
> pike. Telovadil sem tudi z ? vendar rezultat ni bil v okviru 
> pričakovanega :(
>
> Ima kdo mogoče kakšno idejo, kako bi odrezal string pri prvi piki?
>
> Hvala in lep pozdrav,
>
> Matjaž
> ------------------------------------------------------------------------
>
> _______________________________________________
> lugos-list mailing list
> lugos-list na lugos.si
> http://liste2.lugos.si/cgi-bin/mailman/listinfo/lugos-list
>   
Moj predlog: prebereš vrstico in jo s split razbiješ glede na separator

while(<>){
($atributA,$atributB,$atributC)=split/\./;
...
}
v tvojem primeru imaš zdaj ime tiskalnika v spremenljivki $atributA

LP, Andrej



More information about the lugos-list mailing list