Lintian::SlidingWindow

Section: Debian Package Checker (3)
Updated: 2019-04-04
Page Index
 

NAME

Lintian::SlidingWindow - Lintian interface to sliding window match  

SYNOPSIS

    use Lintian::SlidingWindow;

    my $sfd = Lintian::SlidingWindow->new('<','someevilfile.c', sub { $_ = lc($_); });
    my $window;
    while ($window = $sfd->readwindow) {
       if (index($window, 'evil') > -1) {
           if($window =~
                 m/software \s++ shall \s++
                   be \s++ used \s++ for \s++ good \s*+ ,?+ \s*+
                   not \s++ evil/xsim) {
              # do something like : tag 'license-problem-json-evil';
           }
       }
    }

 

DESCRIPTION

Lintian::SlidingWindow provides a way of matching some pattern, including multi line pattern, without needing to fully load the file in memory.  

CLASS METHODS

new(HANDLE[, BLOCKSUB[, BLOCKSIZE]])
Create a new sliding window by reading from a given HANDLE, which must be open for reading. Optionally run BLOCKSUB against each block. Note that BLOCKSUB should apply transform byte by byte and does not depend of context.

Each window consists of up to two blocks of BLOCKSIZE characters.

 

INSTANCE METHODS

readwindow
Return a new block of sliding window. Return undef at end of file.
blocknumber
return the number of block read by the instance. Return undef if no block has been read.
 

DIAGNOSTICS

no data type specified
 

AUTHOR

Originally written by Bastien ROUCARIES for Lintian.  

SEE ALSO

lintian(1)


 

Index

NAME
SYNOPSIS
DESCRIPTION
CLASS METHODS
INSTANCE METHODS
DIAGNOSTICS
AUTHOR
SEE ALSO