exercise: Bob version: 3 plan: 27 subs: hey tests: |- is $subs{hey}->($_->{input}{heyBob}), $_->{expected}, $_->{description} foreach @{$C_DATA->{cases}}; exercise_comment: '# The name of this exercise.' version_comment: '# The version we will be matching against the exercise.' lib_comment: '# Look for the module inside the same directory as this test file.' plan_comment: '# This is how many tests we expect to run.' use_test_comment: '# Check that the module can be use-d.' version_test_comment: |- # If the exercise is updated, we want to make sure other people testing # your code don't think you've made a mistake if things have changed! example: |- sub hey { my ($text) = @_; if (uc($text) eq $text && $text =~ /\p{Uppercase}/) { return 'Calm down, I know what I\'m doing!' if $text =~ /\?\s*$/; return 'Whoa, chill out!'; } return 'Fine. Be that way!' if $text =~ /^\s*$/; return 'Sure.' if $text =~ /\?\s*$/; return 'Whatever.'; } stub: |- sub hey { my ($msg) = @_; # Remove the comments and write some code here to pass the test suite. } package_comment: "# Declare package 'Bob' with version"