Other extensions can extend this popup menu by pushing a code reference onto "@{ $term->{selection_popup_hook} }", which gets called whenever the popup is being displayed.
Its sole argument is the popup menu, which can be modified. The selection is in $_, which can be used to decide whether to add something or not. It should either return nothing or a string and a code reference. The string will be used as button text and the code reference will be called when the button gets activated and should transform $_.
The following will add an entry "a to b" that transforms all "a"s in the selection to "b"s, but only if the selection currently contains any "a"s:
push @{ $self->{term}{selection_popup_hook} }, sub { /a/ ? ("a to b" => sub { s/a/b/g } : () };