[Vienna-pm] pseudo-bitmask to ints

Wolfgang Laun Wolfgang.Laun at thalesgroup.com
Mon Oct 29 00:16:26 PDT 2007


Vielleicht noch eine kompakte Lösung:

  $mask =~ s/\?/./g;
  @p = join('X','',map(unpack('B*',pack('C',$_)),0..15)) =~ 
m/X0{4}($mask)/g;
  print "p=@p\n" ;

Das Ergebnis von join braucht natürlich nur einmal berechnet zu werden.
-W

Thomas Klausner wrote:

>Hi!
>
>Weil im IRC grad alle schmaestad sind:
>
>Fuer folgendes Problem such ich eine kleine, praktische Loesung:
>
>Gegeben ist ein String in der Form '00?1' der eine Bitmask darstellt
>
>Ich brauche alle Ints, die dieser Batmask-Pseudo-Regex matchen, also in 
>diesem Fall 1 und 3
>
>bzw, ich haatte gerne eine Funktion:
>   
>   pseudobitmask2ints('00?1');   # (1,3)
>   pseudobitmask2ints('1??1');   # (9,11,15,16)
>   pseudobitmask2ints('0100');   # (4)
>
>Mir reichen 4 bits.
>
>Weiss da jemand was parktischen?
>
>  
>



More information about the Vienna-pm mailing list