in reply to Test if list is range

Perhaps Perl's (v5.10+) smart-match operator can help:

use strict; use warnings; my @array = qw/1 2 3/; print 'The variable is ' . ( is123(@array) ? '' : 'not ' ) . '[1 .. 3] +.'; sub is123 { @_ ~~ [ 1 .. 3 ] }

Output:

The variable is [1 .. 3].

Replies are listed 'Best First'.
Re^2: Test if list is range
by DeepThought (Initiate) on Oct 01, 2012 at 10:09 UTC

    Hm, I guess I could use the first and last element of a array and create a range with that which I can compare against the array like this to see if it is identical.

    But I think I will just ignore the problem and expect the user to tell me what he wants. The range operator would have been very nice meta programming syntax sugar though.

    I wanted to use it for data validations where for a test a user could pass a list or range of valid entries. But of course for a range I don't want to actually test every element just a few within the range.

    Thanks for all your answers