in reply to Trying to allow user-customizable prompts in a chat program
Update: Here's another way:my %data = ( RN => 'Joe', LOC => '3rd floor', UN => 'juser', ); my $prompt = "-RN- \@ -LOC-"; $prompt =~ s/-([^-]+)-/$data{$1} || "-$1-"/eg;
%map = ( UN => 0, RN => 1, LOC => 2, ); my $prompt = "-RN- (-LOC-)"; my @user_info = ("juser", "Joe", "3rd floor"); my @slices; $prompt =~ s{-([^-]+)-}{ if (exists $map{$1}) { push @slices, $map{$1}; "%s"; } else { "-$1-" } }eg; my $output = sprintf($pattern, @user_info[@slices]);
|
|---|