#!/opt/perl/bin/perl
use strict;
use AnyEvent;
use AnyEvent::EditText;

# An AnyEvent condition variable, see perldoc AnyEvent
my $condvar = AnyEvent->condvar;

# Here just a simple periodic timer is generated which will
# print the ticks to stdout.
my $cnt = 0;
my $t;
my $timer; $timer = sub {
   $t = AnyEvent->timer (after => 1, cb => sub {
      print "Tick " . ($cnt++) . "\n";;
      $timer->();
   });
};
$timer->();

my $content = "This is\nA simple\nExample!\n";

AnyEvent::EditText::set_editor ('rxvt', '-e', 'vim');

# The interesting stuff happens here:
AnyEvent::EditText::edit ($content, sub {
   my ($newcontent, $has_changed) = @_;

   if ($has_changed) {
      print "Content was changed:\n$newcontent";
   } else {
      print "No change has been made!\n";
   }

   $condvar->broadcast;
});

$condvar->wait;