Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • #!/usr/bin/perl -w
    use strict;

    use Data::Dumper;

    my $info = "dog";

    {
      try($info);
      redo if (yes("play again?"));
    }
    print "Bye!\n";
    print Dumper($info);

    sub try {
      my $this = $_[0];
      if (ref $this) {
        return try($this->{yes($this->{Question}) ? 'Yes' : 'No' });
      }
      if (yes("Is it a $this")) {
        print "I got it!\n";
        return 1;
      };
      print "no!?  What was it then? ";
      chomp(my $new = <STDIN>);
      print "And a question that distinguishes a $this from a $new would be? ";
      chomp(my $question = <STDIN>);
      my $yes = yes("And for a $new, the answer would be...");
      $_[0] = {
               Question => $question,
               Yes => $yes ? $new : $this,
               No => $yes ? $this : $new,
              };
      return 0;
    }

    sub yes {
      print "@_ (yes/no)?";
      <STDIN> =~ /^y/i;
    }
    --
    • Randal L. Schwartz
    • Stonehenge
    • Thanks for that - I suspect it may be a good start towards what I'm looking for. I like the way it builds the tree inside $info. Although I'll probably need multiple choices.
       
      There's a Prolog program here [csupomona.edu] that looks a promising start as well.