each paragraph text is captured using mojo->all_text so that's all good. Running that code:
my $entry = "123. The Quick brown fox – jumped over";
my( $num, $text1, $text2 )= $entry =~ m{^ (\d+) \. \s+ (.*?) \s+-\s+ (
+.*?) $}x;
say "$num|$text1|$text2";
gives
Use of uninitialized value $num in concatenation (.) or string at ./te
+st.pl line 10.
Use of uninitialized value $text1 in concatenation (.) or string at ./
+test.pl line 10.
Use of uninitialized value $text2 in concatenation (.) or string at ./
+test.pl line 10.
||