use strict; use warnings; use IO::Prompt::Hooked; my %options = ( message => 'Enter Pattern> ', validate => sub {eval {qr /$_[0]/}; return $@}, error => "Invalid Pattern\n", escape => qr/^\s*$/, ); my $dir = '/etc'; while (my $pattern = prompt %options) { my @matched = grep { /$pattern/ } glob "$dir/*"; do{ local $, = "\n"; print "@matched\n";}; }