Я пытаюсь сопоставить и извлечь первое (как путь) слово и самое последнее слово в многострочной строке (текст = приглашение оболочки + команда + вывод). У меня есть рабочее регулярное выражение
perl -le 'print "$1/$2" if "~/src\nfind\nboards.txt" =~ m`([/~]\S+).*?(\S+)\s*$`s'
# returns expected ~/src/boards.txt
(https://regex101.com/r/uB4kN1/4 для лучшей иллюстрации)
Но у меня возникают проблемы, когда я пытаюсь использовать переменное регулярное выражение.
echo '([/~]\S+).*?(\S+)\s*$' |
perl -lne '$reg=qr/$_/;
print "$1/$2" if "~/src\nfind\nboards.txt" =~ /$reg/s';