---
name: "EBook::Tools::BISG"
section: "3pm"
platform: "linux"
package: "libebook-tools-perl"
version: "0.5.4-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/EBook::Tools::BISG"
---

# EBook::Tools::BISG(3pm)

Class for downloading information from the Book Industry Study Group webpages

## NAME

EBook::Tools::BISG - Class for downloading information from the Book Industry Study Group webpages

## SYNOPSIS

```
 use EBook::Tools::BISG;
 my $bisg = EBook::Tools::BISG->new();
 $bisg->download_bisac;
 $bisg->save_bisac;
 say $bisg->bisac('fic000000');
 %bisac_codes = $bisg->bisac();
```

## DEPENDENCIES

- •

  `"DBI"`

  This will also require a DBD of your choice.  The default is to use a local SQLite store.

- •

  `"LWP"`

- •

  `"Mojo::DOM"`

## CONSTRUCTOR

### new(%args)

Instantiates a new Ebook::Tools::BISG object.

*Arguments*

- •

  `"baseurl"`

  The base url of the bisg.org website or mirror to use.

- •

  `"dsn"`

  The Perl::DBI Data Source Name.  Defaults to a sqlite store named bisac.sqlite in the user config directory.

## ACCESSOR METHODS

### bisac($code)

Returns either the name matching a particular code (case-insensitive), or the hash of all BISAC codes and references with the keys in lower-case if no argument is provided.

### find($regexp)

Returns a list of all BISAC values (names) where either the key or the value for that entry matches a case-insensitive regular expression. If no argument is specified, or it is just '.', then the entire list is returned.

## MODIFIER METHODS

### download\_bisac()

Downloads the BISAC codes from the BISG website and converts them into a hash.  Codes and obsolete entries are lowercased and made the keys, the values will be the official names they map to.

### load\_bisac()

Load the BISAC codes from the specified database into the hash.  This is called automatically by **new()**.

If the load fails, nothing will happen (silently!), so the only way to tell is to check to see if you have a populated hash afterwards.

### save\_bisac()

Save the BISAC codes in the hash to the database.  This will destroy any existing table named bisac\_codes.

Croaks on failure.
