use Proc::InvokeEditor; my $unedited_text = read_text_from_existing_note('note.txt'); my $edited_text = Proc::InvokeEditor->edit($unedited_text); write_text_to_existing_note('note.txt'); # update # or alternatively system($ENV{EDITOR}, '/tmp/note.txt') == 0 or warn "Couldn't launch editor '$ENV{EDITOR}': $!";