transforming an explicit range based on implicit exceptions

Ask a Question related to PERL Miscellaneous, Design and Development.

  1. #1

    Default transforming an explicit range based on implicit exceptions

    i have this problem:
    i have an explit range, say:

    $range = "1-1000";
    and implicit exceptions to it, say:
    $excepts = "3,5-7,12,14,16-18..."
    how do i convert $range into:

    $newrange = "1,2,8-11,13,15,19..."

    with efficiency in time and processing at a premium.

    thanks.
    YAPoster Guest

  2. Similar Questions and Discussions

    1. Transforming locked objects
      When I apply "find and replace" " rotate" effect to a selection of large number of objects, locked objects are also getting rotated. I do not want...
    2. explicit vs implicit syntax
      Is it really bad practice oneway or another with calling sub? &doMe; &doMe(); doMe; doMe(); Please explain in terms of performance and...
    3. #24909 [Fbk->Opn]: rand function with range always returns low value of range
      ID: 24909 User updated by: a0 at hush dot com Reported By: a0 at hush dot com -Status: Feedback +Status: ...
    4. #24909 [Opn->Fbk]: rand function with range always returns low value of range
      ID: 24909 Updated by: iliaa@php.net Reported By: a0 at hush dot com -Status: Open +Status: Feedback...
    5. #24909 [NEW]: rand function with range always returns low value of range
      From: a0 at hush dot com Operating system: solaris 8 PHP version: 4.3.2 PHP Bug Type: Math related Bug description: rand...
  3. #2

    Default Re: transforming an explicit range based on implicit exceptions

    YAPoster wrote:
    > i have this problem:
    > i have an explit range, say:
    >
    > $range = "1-1000";
    > and implicit exceptions to it, say:
    > $excepts = "3,5-7,12,14,16-18..."
    > how do i convert $range into:
    >
    > $newrange = "1,2,8-11,13,15,19..."
    4 is missing here I hope
    >
    > with efficiency in time and processing at a premium.
    >
    > thanks.
    don't know about the "time efficiency" though, and here
    is OWTDI using Bit::Vector module

    #!/usr/bin/perl
    use strict;
    use warnings;
    use Bit::Vector;

    my ($range, $excepts) = (1001, "0,3,5-7,12,14,16-18");
    my $v = Bit::Vector->new_Enum($range, $excepts);
    $v->Flip;
    my $newrange = $v->to_Enum;
    print "\$newrange = $newrange\n";


    Have fun reading the long doc. of Bit::Vector,
    but it sure is a good one. :-)

    Kien Ha Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139