in reply to Re^2: Converting python list range expressions to perl
in thread Converting python list range expressions to perl
"Ken, thanks for your writeup, including forcing me to learn a bit about Test -- I needed that! :-)"
You're welcome. It's good to be able to start a script with use v5.36;.
"I'd rather stick with Perl's slice capability since it reads more cleanly (to me, anyway) ..."
What you choose is entirely up to you. This correlation stood out for me:
| Python | Perl |
|---|---|
| [OFFSET:LENGTH] | splice ARRAY, OFFSET, LENGTH |
| [:LENGTH] | splice ARRAY, 0, LENGTH |
| [OFFSET:] | splice ARRAY, OFFSET |
| [:] | splice ARRAY, 0 |
"... and doesn't require copying and modifying the source array."
The source array, @test_array, is not modified at all. The temporary copy, @temp_array, is modified in the last statement of (my) get_array_slice_by_python_expr() function; it's then immediately discarded as it goes out of scope.
I added your three new tests, plus a fourth ([:]), to my original code:
[\@test_array, '[-3:-1]', 'ef'], [\@test_array, '[-3:-3]', ''], [\@test_array, '[3:-1]', 'def'], [\@test_array, '[:]', 'abcdefg'],
All pass:
1..8 ok 1 - Testing: [:3] ok 2 - Testing: [:-3] ok 3 - Testing: [3:] ok 4 - Testing: [-3:] ok 5 - Testing: [-3:-1] ok 6 - Testing: [-3:-3] ok 7 - Testing: [3:-1] ok 8 - Testing: [:]
— Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Converting python list range expressions to perl
by ibm1620 (Hermit) on Dec 04, 2022 at 23:22 UTC | |
by kcott (Archbishop) on Dec 05, 2022 at 06:14 UTC | |
by LanX (Saint) on Dec 05, 2022 at 14:23 UTC | |
by kcott (Archbishop) on Dec 05, 2022 at 19:02 UTC | |
by LanX (Saint) on Dec 05, 2022 at 20:15 UTC | |
| |
by ibm1620 (Hermit) on Dec 05, 2022 at 21:36 UTC | |
by LanX (Saint) on Dec 05, 2022 at 22:11 UTC | |
by ibm1620 (Hermit) on Dec 05, 2022 at 22:58 UTC |