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

WWW::LEO: Endlosschleife

Leser: 2


<< >> 10 Einträge, 1 Seite
styx-cc
 2007-06-06 15:10
#77341 #77341
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Holla =)
Hab vor ein paar Tagen hier einen Thread im Forum fuer "Grafische Oberflächen gelesen", wo es um eine Uebersetzunggui ging ubnd versucht das mal nachzuvollziehen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
use strict;
use warnings;

use Data::Dumper qw/Dumper/;
use WWW::LEO;

while (1) {
print "Word: ";
chomp(my $text = <STDIN>);
last if ($text eq 'q');
translate($text);
}

sub translate {
my $text = shift;
my $leo = WWW::LEO->new();
$leo->query($text);
if ($leo->num_results) {
print Dumper $leo->en_de();
} else {
print "Sorry, your query for '%s'gave no results.\n", $leo->query;}
print "$leo\n";
}


Dooferweise bringt er mir da nur ne Endlosschleife:
Code: (dl )
1
2
3
4
5
6
7
8
Use of uninitialized value in string eq at J:/Programme/Perl/site/lib/WWW/LEO.pm
line 203, <STDIN> line 1.
Use of uninitialized value in string eq at J:/Programme/Perl/site/lib/WWW/LEO.pm
line 205, <STDIN> line 1.
Use of uninitialized value in string eq at J:/Programme/Perl/site/lib/WWW/LEO.pm
line 203, <STDIN> line 1.
Use of uninitialized value in string eq at J:/Programme/Perl/site/lib/WWW/LEO.pm
line 205, <STDIN> line 1.


Täte mich interessieren, ob das jetzt an meinem Code oder am Modul liegt, vielen Dank fuer Hilfe.

MfG
Pörl.
docsnyder
 2007-06-06 15:21
#77342 #77342
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wenn man mit

Code: (dl )
while ( 1 ) { ... }

eine Endlosschleife hinschreibt, bekommt man auch eine Endlosschleife.

Erstaunt?

Gruß, Doc
renee
 2007-06-06 15:27
#77343 #77343
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das hat mit der Schleife nix zu tun. Hängt wohl am Modul...

Und die Endlosschleife wäre eh nur endlos bis zum "last"...
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/
styx-cc
 2007-06-06 15:29
#77344 #77344
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Wenn du:
Code: (dl )
1
2
3
4
5
6
while (1) {
print "Word: ";
chomp(my $text = <STDIN>);
last if ($text eq 'q');
translate($text);
}

Meinen solltest, sollte dir doch aufgefallen sein das ich meine eigene Endlosschleife via Eingabe: 'q' unterbrechen kann!?

Und wenn ich nur:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
translate('Eimer');
sub translate {
my $text = shift;
my $leo = WWW::LEO->new();
$leo->query($text);
if ($leo->num_results) {
print Dumper $leo->en_de();
} else {
print "Sorry, your query for '%s'gave no results.\n", $leo->query;}
print "$leo\n";
}

Benutze bleibts bei der Endlosschleife, oder verstehe ich dich falsch?

MfG
Pörl.
renee
 2007-06-06 15:38
#77345 #77345
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, Du verstehst mich nicht falsch. In dem Modul gibt es auch ein while(1){ ... }, das das verursacht.
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/
docsnyder
 2007-06-06 15:39
#77346 #77346
User since
2005-09-08
300 Artikel
BenutzerIn
[Homepage] [default_avatar]
@styx-cc

Sorry, wusste nicht, dass der Code woanders hängen bleibt. Es sah wirklich so aus, als wunderst du dich über das "while ( 1 )"-Verhalten.

-----------

Ich nehme an, das LEO-Modul setzt für Übersetzungen eine Query nach www.leo.org ab. Bist du sicher, dass vom Skript aus eine Verbindung ins Internet aufgebaut werden kann? Vielleicht hängt's daran ...

Gruß, Doc\n\n

<!--EDIT|docsnyder|1181129995-->
renee
 2007-06-06 15:51
#77347 #77347
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Eigentlich dürfte es daran nicht liegen. Aus dem Code:
Code (perl): (dl )
1
2
3
4
5
  if ($self->{res}->is_success) {

    $self->_parse_response;

  }


Und wenn keine Verbindung aufgebaut werden kann, sollte ->is_success eigentlich nicht "wahr" sein.

Ansonsten wäre es ein Bug in CPAN:LWP::UserAgent\n\n

<!--EDIT|renee|1181130713-->
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
 2007-06-06 15:53
#77348 #77348
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gerade getest. Das Modul bekommt eine Antwort (das ist also schonmal ok), also liegt's an der Auswertung der Antwort...
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/
styx-cc
 2007-06-06 16:33
#77349 #77349
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Soo, habe jetzt einfach mal das Netzwerkkabel gezogen um zu schauen wie er reagiert:
Code: (dl )
1
2
Sorry, your query for '%s' gave no results.
CapWWW::LEO=HASH(0x34fd8)


Das Query war 'Cap'.
Also wirds wohl beim Parsen der Ergebnisse von leo.org scheitern!?
Leider bin ich bei OO in Perl etwas überfordert, da nie gelernt und somit hab ich auch meine Schwierigkeiten mit dem Source von Leo.pm ;)

Interessieren wuerde mich, ob das Script bei euch so läuft..

MfG
Pörl.
ptk
 2007-06-07 01:10
#77350 #77350
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Siehe https://rt.cpan.org/Ticket/Display.html?id=7952. Anscheinend funktioniert das Modul nicht mehr, und neue Versionen gibt es offenbar auch nicht.
<< >> 10 Einträge, 1 Seite



View all threads created 2007-06-06 15:10.