in reply to using Backtick inside perl gives different output

With warnings enabled, Perl will complain if you try to interpolate an uninitialized or undefined variable, and if there has never been a regex capture to capture group 9, that's what the special variable  $9 will be. See Variables related to regular expressions in perlvar for discussion of  $1 $2 $3 $n   etc.

So one wrong you have done is to ignore the warnings you asked Perl to give you.

>perl -wMstrict -le "my $sw = '/b'; my $d = `dir $sw $9`; print qq{'$d'}; " Use of uninitialized value $9 in concatenation (.) or string at -e lin +e 1. 'arb_nested_HoH_1.pl arb_struct_access_1.pl arb_struct_access_2.pl ... most_of_8_1.pl recurring_cycle.pl recurring_cycle.pl.bak '