AI-Anthropic
view release on metacpan or search on metacpan
```perl
use AI::Anthropic;
my $claude = AI::Anthropic->new(
api_key => 'sk-ant-api03-your-key-here',
);
# Simple message
print $claude->message("What is the meaning of life?");
# With system prompt
my $response = $claude->chat(
system => 'You are a helpful Perl programmer.',
messages => [
{ role => 'user', content => 'How do I read a file?' },
],
);
print "Response: ", $response->text, "\n";
print "Tokens: ", $response->total_tokens, "\n";
```
```
## Response Object
```perl
my $response = $claude->message("Hello");
$response->text; # Response text
$response->model; # Model used
$response->stop_reason; # Why generation stopped
$response->input_tokens; # Tokens in prompt
$response->output_tokens; # Tokens in response
$response->total_tokens; # Total tokens
$response->raw_response; # Full API response hashref
# Stringifies to text
print "$response";
```
## Configuration
examples/basic.pl view on Meta::CPAN
say "=" x 50;
# Example 1: Simple message
say "\n1. Simple message:";
say "-" x 30;
my $response = $claude->message("What is Perl? Answer in 2 sentences.");
say "Response: $response";
say "Tokens used: " . $response->total_tokens;
# Example 2: Chat with system prompt
say "\n2. Chat with system prompt:";
say "-" x 30;
$response = $claude->chat(
system => 'You are a grumpy Perl programmer who loves one-liners.',
messages => [
{ role => 'user', content => 'How do I reverse a string?' },
],
);
say "Response: $response";
lib/AI/Anthropic.pm view on Meta::CPAN
# Chat with history
my $response = $claude->chat(
messages => [
{ role => 'user', content => 'Hello!' },
{ role => 'assistant', content => 'Hello! How can I help you today?' },
{ role => 'user', content => 'What is 2+2?' },
],
);
# With system prompt
my $response = $claude->chat(
system => 'You are a helpful Perl programmer.',
messages => [
{ role => 'user', content => 'How do I read a file?' },
],
);
# Streaming
$claude->chat(
messages => [ { role => 'user', content => 'Tell me a story' } ],
lib/AI/Anthropic.pm view on Meta::CPAN
%opts,
);
}
=head2 chat
Full chat interface:
my $response = $claude->chat(
messages => \@messages, # required
system => $system_prompt, # optional
model => $model, # optional, overrides default
max_tokens => $max_tokens, # optional
temperature => 0.7, # optional, 0.0-1.0
stream => \&callback, # optional, for streaming
tools => \@tools, # optional, for function calling
);
=cut
sub chat {
( run in 1.123 second using v1.01-cache-2.11-cpan-6aa56a78535 )