Avatar billede colg Nybegynder
19. juni 2002 - 11:59 Der er 5 kommentarer og
1 løsning

Ny Prob I Perl

hey nu fik jeg endelig en random funktion men how sætter jeg

sub random

open(TEXT,"links.txt") or die("Kunne ikke åbne fil: $!\n");
@textarray=<TEXT>;
close(TEXT) or die("Kunne ikke lukke fil: $!\n");
$link = @textarray[rand(@textarray)]);

Ind i:

#!/usr/bin/perl

use MSN;
use LWP::Simple;
my $client = MSN->new();

#######FILL THIS IN
$client->connect('(censur)','(censur)', '', {
    Status  => \&Status,
    Answer  => \&Answer,
    Message => \&Message,
    Join    => \&Join }
);


sub Status {
  my ($self, $username, $newstatus) = @_;
       
  print "Status() called with parameters:\n";
  print "  " . join(",", @_), "\n";

  # Print the status change info.
  print "${username}'s status changed from " . $self->buddystatus($username) . " to $newstatus.\n";

}

sub Message {
  my ($self, $username, undef, $msg) = @_;

  print "Message() called with parameters:\n";
  print "  " . join(",", @_), "\n";

  $cnt = get "http://magicalcheese.com/tip/data/count.txt";
  $rnd = int(rand($cnt));
  $thought = get "http://magicalcheese.com/tip/data/$rnd.txt";

  if ($msg =~ hey) {                               
      $$self->sendmsg("zup???");
  } elsif ($msg =~ /hej/i) {                             
      $$self->sendmsg("zup???");
  } elsif ($msg =~ /special/i) {                             
      $$self->sendmsg("æ    ø    å");
  } elsif ($msg =~ /ey/i) {                             
      $$self->sendmsg("zup???");
  } elsif ($msg =~ /stener/i) {                             
      $$self->sendmsg("Me 2");
  } elsif ($msg =~ /joke/i) {                             
      $$self->sendmsg("$thought");
  } elsif ($msg =~ /lol/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /hehe/i) {                             
      $$self->sendmsg("lol");
  } elsif ($msg =~ /yeah/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /ja/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /jep/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /yep/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /hvad laver du?/i) {                             
      $$self->sendmsg("stener");
  } elsif ($msg =~ /zup?/i) {                             
      $$self->sendmsg("stener");
      $$self->sendmsg("dig?");
  } elsif ($msg =~ /me 2/i) {                             
      $$self->sendmsg("k...hehe");
      $$self->sendmsg("Det er provo");
  } elsif ($msg =~ /hvad er min mail?/i) {                             
      $$self->sendmsg("den er: $username");
  } elsif ($msg =~ /jens?/i) {                             
      $$self->sendmsg("Ja hvad er der??? :D");
  } elsif ($msg =~ /hvem er jeg?/i) {                             
      $$self->sendmsg("du er da: $username");
      $$self->sendmsg("havde du glemt det???"); 
  } elsif ($msg =~ /kender du boom?/i) {                             
      $$self->sendmsg("Jep han er flink nok min skaber skal måske op og besøge ham i sommerferien :D");
  } elsif ($msg =~ /hvor er CoLG?/i) {                             
      $$self->sendmsg("I Skole!");
  } elsif ($msg =~ /hvad laver CoLG?/i) {                             
      $$self->sendmsg("Stener I Guess!");
  } elsif ($msg =~ /kender du doodoo?/i) {                             
      $$self->sendmsg("jep skiiiie flink fyr vi plejer at haenge ud sammen og drikke cola :p");
  } elsif ($msg =~ /hvad hedder du?/i) {                             
      $$self->sendmsg("Jens");
  } elsif ($msg =~ /k/i) {                             
  } elsif ($msg =~ /hvor gammel er du?/i) {                             
      $$self->sendmsg("Jeg er 21 (L)"); 
  } elsif ($msg =~ /hvordan ser du ud?/i) {                             
      $$self->sendmsg("Jeg har brunt hAr og brune Qjne er 1,85 hQj gAr i kansas kedel dragt og traesko! :D");
  } else {                                                # Unknonw command.
      $$self->sendmsg("Undskyld men jeg forstAr ikke: $msg");
  }
}

sub Join {
  my ($self, $username) = @_;

  print "Join() called with parameters:\n";
  print "  " . join(",", @_), "\n";

  # See if there's anything queued up.
  # Deliver each message if there is stuff in the queue for this user.
  while ($_ = shift @{$queue{$username}}) { 
      $$self->sendmsg($_);
  }
}

sub Answer {

#called when the IM dialog is opened.

  my ($self, $username) = @_;

  print "Answer() called with parameters:\n";
  print "  " . join(",", @_), "\n";


$$self->sendmsg("Hey :D");


}


PLZ hjælp det er pænt vigtigt :/

//CoLG



Avatar billede thomasledet Nybegynder
20. juni 2002 - 23:42 #1
hvad vil du have det til at gøre??
Avatar billede colg Nybegynder
21. juni 2002 - 13:01 #2
skal bruge en funktion i det dokument der vælger et random link fra en txt fil gerne med random linket som en variabel så jeg kan smække den i en funktion
Avatar billede thomasledet Nybegynder
21. juni 2002 - 13:40 #3
sub randomlink {
open(TEXT,"links.txt") or die("Kunne ikke åbne fil: $!\n");
@textarray=<TEXT>;
close(TEXT) or die("Kunne ikke lukke fil: $!\n");
return @textarray[rand(@textarray)]);
}

det giver dig en statisk metode, du kan kalde såda her:

$variabel = randomlink();

så kan du bruge $variabel som du lyster...

me jeg er stadig ikke helt med på, hvad du vil... hvilken af de eksisterende funktioner skal bruge randomfunktionen til noget...?
Avatar billede colg Nybegynder
23. juni 2002 - 11:01 #4
Tusind tak det er en MSN bot og den skal kunne give dig et link hvis du spørger om den kender en god side og linket skal være random så man ik få det samme link :)
Avatar billede colg Nybegynder
23. juni 2002 - 11:06 #5
ArGh det duer ik har gjordt sådan her:
#!/usr/bin/perl

use MSN;
use LWP::Simple;
my $client = MSN->new();

#######FILL THIS IN
$client->connect('jens_landmand@ofir.dk','162953', '', {
    Status  => \&Status,
    Answer  => \&Answer,
    Message => \&Message,
    Join    => \&Join }
);


sub Status {
  my ($self, $username, $newstatus) = @_;
       
  print "Status() called with parameters:\n";
  print "  " . join(",", @_), "\n";

  # Print the status change info.
  print "${username}'s status changed from " . $self->buddystatus($username) . " to $newstatus.\n";

}

sub Randomlink {
open(TEXT,"links.txt") or die("Kunne ikke åbne fil: $!\n");
@textarray=<TEXT>;
close(TEXT) or die("Kunne ikke lukke fil: $!\n");
return @textarray[rand(@textarray)]);
}

sub Message {
  my ($self, $username, undef, $msg) = @_;

  print "Message() called with parameters:\n";
  print "  " . join(",", @_), "\n";

  $cnt = get "http://magicalcheese.com/tip/data/count.txt";
  $rnd = int(rand($cnt));
  $thought = get "http://magicalcheese.com/tip/data/$rnd.txt";

  if ($msg =~ hey) {                               
      $$self->sendmsg("zup???");
  } elsif ($msg =~ /hej/i) {                             
      $$self->sendmsg("zup???");
  } elsif ($msg =~ /special/i) {                             
      $$self->sendmsg("æ    ø    å");
  } elsif ($msg =~ /ey/i) {                             
      $$self->sendmsg("zup???");
  } elsif ($msg =~ /stener/i) {                             
      $$self->sendmsg("Me 2");
  } elsif ($msg =~ /joke/i) {                             
      $$self->sendmsg("$thought");
  } elsif ($msg =~ /lol/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /hehe/i) {                             
      $$self->sendmsg("lol");
  } elsif ($msg =~ /yeah/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /ja/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /jep/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /yep/i) {                             
      $$self->sendmsg("hehe");
  } elsif ($msg =~ /hvad laver du?/i) {                             
      $$self->sendmsg("stener");
  } elsif ($msg =~ /zup?/i) {                             
      $$self->sendmsg("stener");
      $$self->sendmsg("dig?");
  } elsif ($msg =~ /me 2/i) {                             
      $$self->sendmsg("k...hehe");
      $$self->sendmsg("Det er provo");
  } elsif ($msg =~ /hvad er min mail?/i) {                             
      $$self->sendmsg("den er: $username");
  } elsif ($msg =~ /jens?/i) {                             
      $$self->sendmsg("Ja hvad er der??? :D");
  } elsif ($msg =~ /hvem er jeg?/i) {                             
      $$self->sendmsg("du er da: $username");
      $$self->sendmsg("havde du glemt det???"); 
  } elsif ($msg =~ /kender du boom?/i) {                             
      $$self->sendmsg("Jep han er flink nok min skaber skal måske op og besøge ham i sommerferien :D");
  } elsif ($msg =~ /hvor er CoLG?/i) {                             
      $$self->sendmsg("I Skole!");
  } elsif ($msg =~ /hvad laver CoLG?/i) {                             
      $$self->sendmsg("Stener I Guess!");
  } elsif ($msg =~ /kender du doodoo?/i) {                             
      $$self->sendmsg("jep skiiiie flink fyr vi plejer at haenge ud sammen og drikke cola :p");
  } elsif ($msg =~ /hvad hedder du?/i) {                             
      $$self->sendmsg("Jens");
  } elsif ($msg =~ /k/i) {                             
  } elsif ($msg =~ /hvor gammel er du?/i) {                             
      $$self->sendmsg("Jeg er 21 (L)"); 
  } elsif ($msg =~ /hvordan ser du ud?/i) {                             
      $$self->sendmsg("Jeg har brunt hAr og brune Qjne er 1,85 hQj gAr i kansas kedel dragt og traesko! :D");
  } else {                                                # Unknonw command.
      $$self->sendmsg("Undskyld men jeg forstAr ikke: $msg");
  }
}

sub Join {
  my ($self, $username) = @_;

  print "Join() called with parameters:\n";
  print "  " . join(",", @_), "\n";

  # See if there's anything queued up.
  # Deliver each message if there is stuff in the queue for this user.
  while ($_ = shift @{$queue{$username}}) { 
      $$self->sendmsg($_);
  }
}

sub Answer {

#called when the IM dialog is opened.

  my ($self, $username) = @_;

  print "Answer() called with parameters:\n";
  print "  " . join(",", @_), "\n";


$$self->sendmsg("Hey :D");


}

Men kan stadig ik få det til at fungere :((((
Avatar billede thomasledet Nybegynder
23. juni 2002 - 13:09 #6
det er jo ikke nok at sætte koden ind... du skal jo også lave en handler for... perl kan meget, men at gætte sig til, hvad du vil er ikke en af tingene...

et eksempel
} elsif ($msg =~ /link/i) {                           
      $$self->sendmsg(Randomlink());
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester