in reply to Re^2: DBI::Shell sqlite dbh->func(
in thread DBI::Shell sqlite dbh->func(

If I try it without the single quotes within the func declaration, I get a strict subs error

Something like this?

#!/bin/env perl # create a SQLite test database use strict; use warnings; use DBI; my $db = shift @ARGV || 'no_name.splite'; my $dbh = DBI->connect( "dbi:SQLite:$db", "", "", { RaiseError => 1, sqlite_see_if_its_a_number => 1, PrintError => 0 } ); $dbh->func('sqrt_s_s', -1, \&sqrt_sum_of_sqrs, 'create_function'); # n +eed length function my @rowa = $dbh->selectrow_array( "select 3 as A, 4 as B, sqrt_s_s( 3, + 4 ) as C" ); print join( "\t", @rowa ), "\n"; sub sqrt_sum_of_sqrs { my $sum_sqrs = 0.0; map { $sum_sqrs += $_ ** 2 } @_; return sqrt( $sum_sqrs ); }

Update: So now you need to research three things.

  1. How would you prompt a user for input?
  2. How to get the user input?
  3. How do you pass the user input into your function?

Replies are listed 'Best First'.
Re^4: DBI::Shell sqlite dbh->func(
by rodinski (Novice) on Oct 31, 2013 at 01:50 UTC
    My past research peaked my interest in the command line tool dbish. So my answers are as follows.

    >Update: So now you need to research three things.

    >How would you prompt a user for input?

    via dbish (or DBI::Shell interface)

    >How to get the user input?

    via dbish (or DBI::Shell interface)

    >How do you pass the user input into your function?

    I'm thinking that there should already be code that has performed the ->func method.

    I'm hoping to be able to type into the dbish interface something like this:

    select 3 as oposite, 4 as adjacent, sqrt(3,4) as hyp

    and get

    3 4 5

    as a result.