Barcode::Cuecat - Perl extension for decoding :CueCat(tm) scans


  use Barcode::Cuecat;

  my $bc = new Barcode::Cuecat();

  my $type = $bc->type();       # Get the type of barcode
  my $code = $bc->code();       # The actual number scanned
  my $serial = $bc->serial();   # The serial of the :CueCat


This module is an attempt to ease the adoption of :CueCat(tm) into general purpose applications. The term :CueCat(tm) seems to be a trademark of a company called Digital Convergence. The code in this module is based on code that has been found in numerous sites. I have not found a reference to an author, so I cannot give proper credit for it. Some references point to Larry Wall, so if this code is actually yours, I hope you don't mind some repackaging of it :).

As for the legality of this code, I received my :CueCat over the mail, outside the United States. I had to pay the shipping for this device, even when I did not request it. According to the laws of the country where this code is being written, I have each and every right to reverse engineer or otherwise do whatever I please with this device. This module is one example of what can I excercise under my legal rights. This code, of course, carries the same warranties and can be used under the same terms as Perl itself.

The functions supported by this module are below:


Creates a Barcode::Cuecat object. $string is optional. If supplied, this saves you from invoking ->scan().


Initializes the object with a newly scanned string.


Returns the type of barcode decoded. For known :CueCat numbers, this will be ':C1'.


Returns the actual number decoded in the barcode. Codes in the proprietary :CueCat format are converted automatically to a sequence of digits.


Returns the serial number of the :CueCat(tm) scanner. Keep in mind that this information is meaningless after declawing the device.


None by default.


Luis E. Munoz <>. Thanks to Larry Wall <> for the compact original code. Thanks to Brian Blakley <> for feedback.