Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11968[/thread]

problem mit chomp



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Gast Gast
 2008-06-04 11:48
#110708 #110708
hallo zusammen,

Zeilenumbruch im letzten Elemet eines Arrays.
Code: (dl )
my @inhalt = split /;/, qx(check_nrpe20 -H $ARGV[0] -p 5666 -c check_jobinfos);


wenn ich jetzt ein
Code: (dl )
chomp(@inhalt)
mache und ich dann das Array in die DB schreibe, wird das letzte Element zweimal in die DB geschrieben.

so fülle ich die DB
Code: (dl )
1
2
3
4
for my $zeile(@inhalt)
{
$query_fuellen0->execute(split /,/, $zeile) or warn $dbh->errstr;
}


wenn ich das
Code: (dl )
chomp(@inhalt)
wieder weg mache, dann wird es nur einmal in die DB geschrieben.
Kann mir da jemand weiterhelfen?!

danke & grüße olli
renee
 2008-06-04 11:51
#110709 #110709
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du Dir mal das Array angeschaut, wie es vor und nach dem chomp aussieht? (Stichwort: Data::Dumper).

Eigentlich kann ich mir nicht vorstellen, dass das direkt was mit chomp zu tun hat...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-06-04 12:07
#110711 #110711
es sieht gleich aus, außer das der Zeilenumbruch weg ist.

Kann es an der Schleife liegen, dass der letzte Eintag doppelt geschrieben wird?

...
Gast Gast
 2008-06-04 12:21
#110712 #110712
wenn ich mit chomp mache :

$VAR1 = [ ' ANZAHL USER ,User die online sind ,baan ,1,2008-4-7,2008-4-7 ,1',
, '' ];


sieht das so aus, ich habe jetzt die anderen Elemete dazwischen rausgemacht.
renee
 2008-06-04 12:23
#110714 #110714
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach mal aus
Code (perl): (dl )
1
2
3
4
for my $zeile(@inhalt)
   {
   $query_fuellen0->execute(split /,/, $zeile) or warn $dbh->errstr;
   }


ein
Code (perl): (dl )
1
2
3
4
5
for my $zeile(@inhalt)
   {
   next unless $zeile;
   $query_fuellen0->execute(split /,/, $zeile) or warn $dbh->errstr;
   }
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-06-04 12:36
#110715 #110715
hi renee,

ja es funktioniert, danke.

kennst du dich auch mit php aus?

ich versuche über einen refresh button das füllen der DB zu aktualisieren, je nach Bedarf. Ich versuche es über
Code: (dl )
 exec(script.pl)
aber es funktioniert nicht.
Hast du da vielleicht eine idee?


danke noch mal, gruß olli
renee
 2008-06-04 12:43
#110716 #110716
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gast+2008-06-04 10:36:33--
kennst du dich auch mit php aus?
einigermaßen...
Quote
ich versuche über einen refresh button das füllen der DB zu aktualisieren, je nach Bedarf. Ich versuche es über
Code: (dl )
 exec(script.pl)
aber es funktioniert nicht.

das heißt? Bekommst Du eine Fehlermeldung? Benötigt das Perl-Skript irgendwelche Variablen (z.B. POST-/GET-Parameter)?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2008-06-04 12:46
#110717 #110717
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gast+2008-06-04 10:36:33--
Ich versuche es über
Code: (dl )
 exec(script.pl)


Mal mit [php]$lines = array();
exec("perl script.pl 2>&1", $lines);

print_r( $lines );[/php] ersetzen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-06-04 12:50
#110718 #110718
ne bekomme keine fehlermeldung.

über den Button soll ein refresh.pl aufgerufen werden
exec("refresh.pl") und in diesem script steht dann das ganze mit dem Array füllen und in die DB schreiben.

Das Script soll einfach nur ausgeführt werden, ich benötige keine Rückgabe, etc.

ich lese dann die daten direkt aus der DB über ein PHP webinterface aus, unabhängig davon.
renee
 2008-06-04 12:52
#110719 #110719
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mit dem 2>&1 wird STDERR auf STDOUT umgeleitet. Vielleicht bekommst Du so eine Fehlermeldung...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2008-06-04 11:48.