Chris,
I used sever instead of copy.
Basically I'm copying David's code, btw. the +=0 isn't necessary to
catch the slice().
Thank you all.
Ingo
On 08/23/2013 01:47 PM, Chris Marshall wrote:
> Hi Ingo-
>
> The downside of the copy is that you lose
> dataflow (and it takes more memory). I
> can't test this out but you could use a
> "throw away" copy to preserve dataflow:
>
> eval { ($subset=$data->slice($b))->copy };
>
> --Chris
>
>
> On Thu, Aug 22, 2013 at 9:06 AM, Ingo Schmid <[email protected]> wrote:
>> Thank you all for the helpful replies. This code did it for me:
>>
>> eval {$subset=$data->slice($b)->copy };
>> if ($@) {
>> message "Wrong Slice string $@" ,mb::Error;
>> } else {
>> ...
>>
>>
>> Ingo
>>
>> On 08/21/2013 08:56 PM, David Mertens wrote:
>>
>> I'm not sure when a *bad* slice is caught, but an out-of-bounds slice is not
>> caught until an actual evaluation. So, do a null operation, like adding zero
>> in place. Note I use the eval { ... 1; } or do { ... }; idiom for exception
>> handling, which I really like. It works just like a try/catch block, and is
>> just as compact.
>>
>> my $slice;
>> eval {
>> $slice = $data->slice($string);
>> $slice += 0;
>> 1;
>> } or do {
>> croak("Bad slice string $string");
>> };
>>
>> This conflates a malformed string and an out-of-bounds error, which may or
>> may not be what you want. But hopefully it's a start.
>>
>> David
>>
>>
>> On Wed, Aug 21, 2013 at 2:49 PM, Luis Mochan <[email protected]> wrote:
>>> I believe you are missing quotes. The argument of eval is a string to
>>> be compiled and executed, as in
>>> eval ('$y=slice ($x,"0,8,,")')
>>> Regards,
>>> Luis
>>>
>>>
>>> On Wed, Aug 21, 2013 at 02:14:14PM +0000, Chris Marshall wrote:
>>>> I don't have a working PDL but I mean using
>>>> eval for exception trapping. Try looking at
>>>> the eval docs in perldoc -f eval or someone with
>>>> a working example....
>>>>
>>>> On Wed, Aug 21, 2013 at 1:51 PM, Ingo Schmid <[email protected]> wrote:
>>>>> Chris,
>>>>>
>>>>> sorry, I get this. It never returns, just dies, apparently.
>>>>>
>>>>> pdl> help $x
>>>>> This variable is Double D [2,6,1,4] P 0.38KB
>>>>> pdl> eval (slice ($x,'0,8,,'))
>>>>>
>>>>>
>>>>> Runtime error: Stringizing problem: Slice cannot start or end above
>>>>> limit. eval {...} called at Basic/Core/Core.pm.PL (i.e.
>>>>> PDL::Core.pm)
>>>>> line 2969
>>>>> PDL::string('PDL=SCALAR(0x4e242b0)', undef, '') called at (eval
>>>>> 581)
>>>>> line 5
>>>>>
>>>>>
>>>>>
>>>>> On 08/21/2013 03:36 PM, Chris Marshall wrote:
>>>>>> eval ?
>>>>>>
>>>>>> On Wed, Aug 21, 2013 at 9:20 AM, Ingo Schmid <[email protected]> wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I want a user to enter a string defining a slice of a piddle to
>>>>>>> extract.
>>>>>>>
>>>>>>> Now when I call
>>>>>>>
>>>>>>>
>>>>>>> $y=$x->slice($string) || barf "Not a valid slice\n";
>>>>>>>
>>>>>>> that does not catch it. How do I catch it?
>>>>>>>
>>>>>>> Ingo
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Perldl mailing list
>>>>>>> [email protected]
>>>>>>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>>>>>>
>>>> _______________________________________________
>>>> Perldl mailing list
>>>> [email protected]
>>>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>> --
>>>
>>> o
>>> W. Luis Mochán, | tel:(52)(777)329-1734 /<(*)
>>> Instituto de Ciencias Físicas, UNAM | fax:(52)(777)317-5388 `>/ /\
>>> Apdo. Postal 48-3, 62251 | (*)/\/ \
>>> Cuernavaca, Morelos, México | [email protected] /\_/\__/
>>> GPG: DD344B85, 2ADC B65A 5499 C2D3 4A3B 93F3 AE20 0F5E DD34 4B85
>>>
>>>
>>>
>>> _______________________________________________
>>> Perldl mailing list
>>> [email protected]
>>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>
>>
>>
>> --
>> "Debugging is twice as hard as writing the code in the first place.
>> Therefore, if you write the code as cleverly as possible, you are,
>> by definition, not smart enough to debug it." -- Brian Kernighan
>>
>>
>> _______________________________________________
>> Perldl mailing list
>> [email protected]
>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>
>>
>>
>> _______________________________________________
>> Perldl mailing list
>> [email protected]
>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl